EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

winebuild – Online in der Cloud

Führen Sie winebuild im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl winebuild, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


winebuild – Wine-DLL-Builder

ZUSAMMENFASSUNG


Weinbau [Optionen] [Eingabedatei...]

BESCHREIBUNG


Weinbau generiert die Assembly-Dateien, die zum Erstellen einer Wine-DLL erforderlich sind
im Grunde eine Win32-DLL, die in einer Unix-Bibliothek gekapselt ist.

Weinbau verfügt über verschiedene Modi, je nachdem, welche Art von Datei generiert werden soll. Der
Der Modus wird durch eine der unten angegebenen Modusoptionen angegeben. Zusätzlich zum Modus
Option können verschiedene andere Befehlszeilenoptionen angegeben werden, wie in beschrieben OPTIONAL
.

MODE OPTIONAL


Je nachdem, was Sie möchten, müssen Sie genau eine der folgenden Optionen angeben
winebuild zum Generieren.

--dll Erstellen Sie eine Assembly-Datei aus einer .spec-Datei (siehe SPEC FILE SYNTAX für Einzelheiten), oder
aus einer Standard-Windows-DEF-Datei. Die .spec/.def-Datei wird über angegeben -E
Möglichkeit. Die resultierende Datei muss zusammengestellt und mit den anderen Objektdateien verknüpft werden
um eine funktionierende Wine-DLL zu erstellen. In diesem Modus ist die Eingabe Dateien sollte die Liste sein
alle Objektdateien, die in die endgültige DLL eingebunden werden, um dies zu ermöglichen Weinbau bekommen
die Liste aller undefinierten Symbole, die aus anderen DLLs importiert werden müssen.

--exe Erstellen Sie eine Assemblydatei für eine ausführbare Datei. Dies ist im Grunde das Gleiche wie das --dll
Modus, mit der Ausnahme, dass keine .spec/.def-Datei als Eingabe erforderlich ist, da es sich um eine ausführbare Datei handelt
müssen keine Funktionen exportieren. Einige ausführbare Dateien verfügen jedoch über Exportfunktionen und für
Über die kann eine .spec/.def-Datei angegeben werden -E Möglichkeit. Die ausführbare Datei wird benannt
aus dem .spec/.def-Dateinamen, falls vorhanden, oder explizit durch -F Option. Die
Die resultierende Datei muss zusammengestellt und mit den anderen Objektdateien verknüpft werden, um eine zu erstellen
funktionierende ausführbare Wine-Datei und alle anderen Objektdateien müssen als aufgeführt sein Eingabe
Dateien.

--def Erstellen Sie eine .def-Datei aus einer Spezifikationsdatei. Die .spec-Datei wird über angegeben -E .
Dies wird beim Erstellen von DLLs mit einem PE-Compiler (Win32) verwendet.

--implib
Erstellen Sie eine PE-Importbibliothek aus einer Spezifikationsdatei. Die .spec-Datei wird über angegeben -E
.

--Ressourcen
Generieren Sie eine .o-Datei mit allen Eingaberessourcen. Dies ist beim Bauen nützlich
mit einem PE-Compiler, da die PE-Binutils nicht mehrere Ressourcendateien verarbeiten können
Eingang. Bei einem Standard-Unix-Build sind die Ressourcendateien automatisch enthalten
beim Erstellen der Spezifikationsdatei, sodass keine Zwischendatei mit der Erweiterung .o erforderlich ist.

OPTIONAL


--as-cmd=as-Befehl
Geben Sie den Befehl an, der zum Kompilieren von Assemblydateien verwendet werden soll. Die Standardeinstellung ist as.

-B, --ziel=CPU-Hersteller[-Kern]-os
Geben Sie die Ziel-CPU und Plattform an, auf der der generierte Code erstellt werden soll. Der
Die Zielspezifikation liegt im standardmäßigen Autoconf-Format vor, wie es von config.sub zurückgegeben wird.

--cc-cmd=cc-Befehl
Geben Sie den C-Compiler an, der zum Kompilieren von Assemblydateien verwendet werden soll. Die Standardeinstellung lautet stattdessen
Verwenden Sie den mit angegebenen Assembler --as-cmd.

-D, --delay-lib=Name
Legen Sie den verzögerten Importmodus für die angegebene Bibliothek fest, bei der es sich um eine der folgenden handeln muss
Mit dem importierte Bibliotheken -l Möglichkeit. Der verzögerte Modus bedeutet, dass die Bibliothek nicht aktiviert ist
geladen, bis eine daraus importierte Funktion tatsächlich aufgerufen wird.

-D Symbol
Aus Kompatibilitätsgründen mit dem C-Compiler ignoriert.

-e, --Eintrag=Funktion
Geben Sie die Modul-Einstiegspunktfunktion an. Wenn nicht angegeben, ist der Standardwert DllMain
für DLLs und Haupt- für ausführbare Dateien (wenn der Standard C Haupt- ist nicht definiert, Winmain
wird stattdessen verwendet). Dies gilt nur für Win32-Module.

-IS, --export=Dateinamen
Geben Sie eine .spec-Datei an (siehe SPEC FILE SYNTAX für Einzelheiten) oder eine Standard-Windows-DEF-Datei
Datei, die die Exporte der DLL oder ausführbaren Datei definiert, die erstellt wird.

--external-symbols
Ermöglichen Sie die Verknüpfung mit externen Symbolen direkt aus der Spezifikationsdatei. Normalerweise Symbole
Von einer DLL exportierte Dateien müssen in der DLL selbst definiert werden. Diese Option macht es
Es ist möglich, Symbole zu verwenden, die in einer anderen Unix-Bibliothek definiert sind (für Symbole, die in definiert sind).
eine weitere DLL, a Stattdessen muss die Spezifikation verwendet werden).

-f zu erhalten
Geben Sie eine Codegenerierungsoption an. Momentan -fPIC und -fasynchrone-unwind-Tabellen
sind unterstützt. Andere Optionen werden aus Kompatibilitätsgründen mit dem C-Compiler ignoriert.

--fake-module
Erstellen Sie ein gefälschtes PE-Modul für eine DLL oder Exe anstelle der normalen Assembly oder des normalen Objekts
Datei. Das PE-Modul enthält die Ressourcen für das Modul, jedoch keinen ausführbaren Code.

-F, --Dateiname=Dateinamen
Legen Sie den Dateinamen des Moduls fest. Standardmäßig wird der Basisname der Spezifikation verwendet
Datei (ohne Erweiterung).

-H, --help
Anzeigen einer Nutzungsmeldung und Beenden.

-H, --haufen=Größe
Geben Sie die Größe des lokalen Modulheaps in Bytes an (nur gültig für Win16-Module).
Standardmäßig ist kein lokaler Heap vorhanden.

-I Verzeichnis
Aus Kompatibilitätsgründen mit dem C-Compiler ignoriert.

-k, --kill-at
Entfernen Sie die stdcall-Dekorationen aus den Symbolnamen in der generierten .def-Datei.
Nur sinnvoll in --def Modus arbeiten können.

-K Fahnen
Aus Kompatibilitätsgründen mit dem C-Compiler ignoriert.

--große-adress-bewusst
Setzen Sie in der ausführbaren Datei ein Flag, um den Loader zu benachrichtigen, dass diese Anwendung unterstützt
Adressräume größer als 2 Gigabyte.

--ld-cmd=ld-Befehl
Geben Sie den Befehl an, der zum Verknüpfen der Objektdateien verwendet werden soll. Die Standardeinstellung ist ld.

-L, --Bibliothekspfad=Verzeichnis
Hängen Sie das angegebene Verzeichnis an die Liste der gesuchten Verzeichnisse an
Bibliotheken importieren.

- l, --Bibliothek=Name
Importieren Sie die angegebene Bibliothek und suchen Sie nach einer entsprechenden libname.def Datei in das
Verzeichnisse, die mit angegeben sind -L .

-m16, -m32, -m64
Generieren Sie jeweils 16-Bit-, 32-Bit- oder 64-Bit-Code.

-M, --main-module=Modulen
Wenn Sie eine 16-Bit-DLL erstellen, legen Sie den Namen des 32-Bit-Gegenstücks auf fest Modulen. Dies
wird verwendet, um zu erzwingen, dass die Ladereihenfolge für die 16-Bit-DLL mit der der übereinstimmt
32-Bit.

-N, --dll-name=DLLname
Legen Sie den internen Namen des Moduls fest. Es wird nur in Win16-Modulen verwendet. Der Standard
besteht darin, den Basisnamen der Spezifikationsdatei (ohne Erweiterung) zu verwenden. Dies wird verwendet für
KERNEL, da es sich in KRNL386.EXE befindet. Sonst sollte es nicht nötig sein.

--nm-cmd=nm-Befehl
Geben Sie den Befehl an, der verwendet werden soll, um die Liste der undefinierten Symbole abzurufen. Die Standardeinstellung ist nm.

--nxcompat=ja|nicht
Geben Sie an, ob das Modul mit No-Exec-Unterstützung kompatibel ist. Der Standardwert ist „Ja“.

-Ö, --ausgabe=Datei
Legen Sie den Namen der Ausgabedatei fest (Standard ist Standardausgabe). Wenn die Ausgabedatei
Wenn der Name auf .o endet, wird die Textausgabe an eine temporäre Datei gesendet, die dann zusammengestellt wird
um die angegebene .o-Datei zu erstellen.

-R, --res=rsrc.res
Laden Sie Ressourcen aus der angegebenen binären Ressourcendatei. Der rsrc.res Datei kann sein
erstellt aus einer Quellressourcendatei mit wrc(1) (oder mit einer Windows-Ressource
Compiler).
Diese Option ist nur für Win16-Ressourcendateien erforderlich, die Win32-Dateien können dies einfach tun
aufgelistet als Eingabe Dateien und wird automatisch korrekt behandelt (obwohl die -r
Option funktioniert auch für Win32-Dateien).

--save-temps
Löschen Sie nicht die verschiedenen temporären Dateien Weinbau erzeugt.

--subsystem=Teilsystem[:Dur[.Moll]]
Legen Sie das Subsystem der ausführbaren Datei fest. Dies kann eines der folgenden sein:
trösten für eine ausführbare Befehlszeilendatei,
Fenster für eine grafische ausführbare Datei,
nativen für eine DLL im nativen Modus,
zusammenzucken für eine CE-DLL.
Der Einstiegspunkt einer ausführbaren Befehlszeilendatei ist ein normales C Haupt- Funktion. EIN wmain
Die Funktion kann stattdessen verwendet werden, wenn Sie das Argumentarray zur Verwendung von Unicode-Zeichenfolgen benötigen.
Eine grafische ausführbare Datei verfügt über eine Winmain Einstiegspunkt.
Optional kann auch eine Haupt- und Neben-Subsystemversion angegeben werden; der Standard
Die Subsystemversion ist 4.0.

-du, --undefiniert=Symbol
Speichern Symbol zur Liste der undefinierten Symbole hinzugefügt, wenn der Linker aufgerufen wird. Das macht es
Es ist möglich, die Aufnahme eines bestimmten Moduls einer statischen Bibliothek zu erzwingen, wenn
Importe lösen.

-in, - ausführlich
Zeigt die verschiedenen Unterbefehle an, die aufgerufen werden Weinbau.

--Version
Programmversion anzeigen und beenden.

-w, --Warnungen
Aktivieren Sie Warnungen.

SPEC FILE SYNTAX


Allgemeines Syntax
Eine Spezifikationsdatei sollte eine Liste ordinaler Deklarationen enthalten. Die allgemeine Syntax ist die
wie folgt vor:

Ordinal- Funktionstyp [Fahnen] Exportname ( [Argumente...] ) [Handler]
Ordinal- Variable [Fahnen] Exportname ( [Daten...] )
Ordinal- extern [Fahnen] Exportname [Symbolname]
Ordinal- Stummel [Fahnen] Exportname [ (Argumente...) ]
Ordinal- gleichsetzen [Fahnen] Exportname technische Daten
# Bemerkungen

Deklarationen müssen in eine einzelne Zeile passen, es sei denn, das Zeilenende wird mit einem Escapezeichen versehen
Backslash-Zeichen. Der # Ein Zeichen an einer beliebigen Stelle in einer Zeile bewirkt, dass der Rest der Zeile gelöscht wird
als Kommentar ignoriert.

Ordinal- Gibt die Ordnungszahl an, die dem Einstiegspunkt entspricht, oder „@“ für
automatische Ordinalzuordnung (nur Win32).

Fahnen ist eine Reihe optionaler Flags, denen ein „-“-Zeichen vorangestellt ist. Die unterstützten Flags sind:

-norelay
Der Einstiegspunkt wird in Relay-Debugging-Traces nicht angezeigt (nur Win32).

-kein Name
Der Einstiegspunkt wird nach Ordnungszahl statt nach Namen exportiert. Der Name ist
steht weiterhin zum Importieren zur Verfügung.

-ret16 Die Funktion gibt einen 16-Bit-Wert zurück (nur Win16).

-ret64 Die Funktion gibt einen 64-Bit-Wert zurück (nur Win32).

-registrieren
Die Funktion verwendet das CPU-Register, um Argumente zu übergeben.

-Privat
Die Funktion kann nicht aus anderen DLLs importiert werden, es kann nur darauf zugegriffen werden
über GetProcAddress.

-Ordinal
Der Einstiegspunkt wird nach Ordnungszahl statt nach Namen importiert. Der Name ist
immer noch exportiert.

-arch=CPU[,CPU]
Der Einstiegspunkt ist nur auf der/den angegebenen CPU-Architektur(en) verfügbar. Der
Namen win32 und win64 passen zu allen 32-Bit- oder 64-Bit-CPU-Architekturen
jeweils. In 16-Bit-DLLs wird angegeben -arch=win32 verursacht den Einstiegspunkt
aus dem 32-Bit-Wrapper-Modul exportiert werden.

Funktion Ordnungszahlen
Syntax:
Ordinal- Funktionstyp [Fahnen] Exportname ( [Argumente...] ) [Handler]

Diese Deklaration definiert einen Funktionseintrittspunkt. Der von definierte Prototyp
Exportname ( [Argumente...] ) Gibt den für die dynamische Verknüpfung verfügbaren Namen und das Format an
der Argumente. Stattdessen kann auch „@“ verwendet werden Exportname für Nur-Ordinal-Exporte.

Funktionstyp sollte einer sein von:

stdcall
für eine normale Win32-Funktion

pascal für eine normale Win16-Funktion

cdecl für eine Win16- oder Win32-Funktion unter Verwendung der C-Aufrufkonvention

Varargs
für eine Win16- oder Win32-Funktion unter Verwendung der C-Aufrufkonvention mit einer Variablen
Anzahl der Argumente

dieser Anruf
für eine Win32-Funktion mit der dieser Anruf Aufrufkonvention (erster Parameter
im %ecx-Register auf i386)

args sollte eines oder mehrere davon sein:

Wort (16-Bit-Wert ohne Vorzeichen)

Schwert (16-Bit-Wort mit Vorzeichen)

lange (zeigergroßer ganzzahliger Wert)

int64 (64-Bit-Ganzzahlwert)

int128 (128-Bit-Ganzzahlwert)

schweben (32-Bit-Gleitkommawert)

doppelt (64-Bit-Gleitkommawert)

ptr (linearer Zeiger)

str (linearer Zeiger auf einen nullterminierten ASCII-String)

wstr (linearer Zeiger auf einen nullterminierten Unicode-String)

Segptr (segmentierter Zeiger)

Segstr (segmentierter Zeiger auf eine nullterminierte ASCII-Zeichenfolge).

Hinweis: Die 16-Bit- und segmentierten Zeigertypen sind nur für Win16-Funktionen gültig.

Handler ist der Name der tatsächlichen C-Funktion, die diesen Einstiegspunkt implementiert
32-Bit-Modus. Der Handler kann auch als angegeben werden DLLname.Funktion um eine Weiterleitung zu definieren
Funktion (eine, deren Implementierung sich in einer anderen DLL befindet). Wenn Handler ist nicht angegeben, es ist
als identisch angenommen Exportname.

Dieses erste Beispiel definiert einen Einstiegspunkt für den 32-Bit-Aufruf GetFocus():

@ stdcall GetFocus() GetFocus

Dieses zweite Beispiel definiert einen Einstiegspunkt für den 16-Bit-CreateWindow()-Aufruf (die Ordnungszahl).
100 ist nur ein Beispiel); Außerdem wird gezeigt, wie lange Zeilen mithilfe eines Backslashs geteilt werden können:

100 Pascal CreateWindow(ptr ptr long s_word s_word s_word \
s_word wort wort wort ptr) WIN_CreateWindow

Um eine Funktion mit einer variablen Anzahl von Argumenten zu deklarieren, geben Sie die Funktion als an
Varargs und deklarieren Sie es in der C-Datei mit einem '...'-Parameter für eine Win32-Funktion oder mit
ein zusätzliches VA_LIST16-Argument für eine Win16-Funktion. Siehe die wsprintf*-Funktionen in
user.exe.spec und user32.spec als Beispiel.

Variable Ordnungszahlen
Syntax:
Ordinal- Variable [Fahnen] Exportname ( [Daten...] )

Diese Deklaration definiert die Datenspeicherung als 32-Bit-Wörter mit der angegebenen Ordnungszahl.
Exportname ist der Name, der für die dynamische Verknüpfung verfügbar ist. technische Daten kann eine Dezimalzahl sein
oder eine Hexzahl mit vorangestelltem „0x“. Das folgende Beispiel definiert die Variable VariableA at
Ordnungszahl 2 und mit 4 Ganzzahlen:

2 Variable VariableA(-1 0xff 0 0)

Diese Deklaration funktioniert nur in Win16-Spezifikationsdateien. In Win32 sollten Sie verwenden extern beantragen müssen
(siehe unten).

Äußere Ordnungszahlen
Syntax:
Ordinal- extern [Fahnen] Exportname [Symbolname]

Diese Deklaration definiert einen Eintrag, der einfach einem C-Symbol (Variable oder Funktion) zugeordnet wird.
Es funktioniert nur in Win32-Spezifikationsdateien. Exportname zeigt auf das Symbol Symbolname zur Verbesserung der Gesundheitsgerechtigkeit
muss im C-Code definiert werden. Alternativ kann es auch die Form haben DLLname.Symbolname zu
Definieren Sie ein weitergeleitetes Symbol (eines, dessen Implementierung sich in einer anderen DLL befindet). Wenn Symbolname is
nicht angegeben, es wird davon ausgegangen, dass es identisch ist mit Exportname.

Stummel Ordnungszahlen
Syntax:
Ordinal- Stummel [Fahnen] Exportname [ (Argumente...) ]

Diese Deklaration definiert eine Stub-Funktion. Es macht den Namen und die Ordnungszahl verfügbar für
dynamische Verknüpfung, bricht jedoch die Ausführung mit einer Fehlermeldung ab, wenn die Funktion dies tut
jemals angerufen.

Gleichsetzen Ordnungszahlen
Syntax:
Ordinal- gleichsetzen [Fahnen] Exportname technische Daten

Diese Deklaration definiert eine Ordinalzahl als einen absoluten Wert. Exportname wird der Name sein
für die dynamische Verlinkung verfügbar. technische Daten kann eine Dezimalzahl oder eine Hexadezimalzahl mit vorangestelltem Zeichen sein
„0x“.

AUTOREN


Weinbau wurde im Laufe der Jahre von vielen Menschen bearbeitet. Die Hauptautoren sind Robert J.
Amstadt, Alexandre Julliard, Martin von Loewis, Ulrich Weigand und Eric Youngdale. Viele
andere Leute haben neue Funktionen und Fehlerbehebungen beigesteuert. Eine vollständige Liste finden Sie im Git
Commit-Protokolle.

Nutzen Sie winebuild online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad