EnglischFranzösischSpanisch

Server ausführen | Ubuntu > | Fedora > |


OnWorks-Favicon

winebuild-development - Online in der Cloud

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

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

PROGRAMM:

NAME


winebuild - Wein-DLL-Ersteller

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 hat unterschiedliche Modi, je nachdem, welche Art von Datei generiert werden soll. Die
mode wird durch eine der unten angegebenen Modusoptionen angegeben. Neben dem Modus
Option können verschiedene andere Befehlszeilenoptionen angegeben werden, wie in der Beschreibung beschrieben OPTIONAL
Abschnitt.

MODE OPTIONAL


Sie müssen genau eine der folgenden Optionen angeben, je nachdem, was Sie wollen
Weinbau zu generieren.

--dll Erstellen Sie eine Baugruppendatei aus einer .spec-Datei (siehe SPEC FILE SYNTAX für Details), oder
aus einer Standard-Windows-.def-Datei. Die .spec/.def-Datei wird über die -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 mit der endgültigen DLL verknüpft 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, außer dass er keine .spec/.def-Datei als Eingabe benötigt, da eine ausführbare Datei
brauchen keine Exportfunktionen. Einige ausführbare Dateien haben jedoch Exportfunktionen, und für
denen kann eine .spec/.def-Datei über die -E Möglichkeit. Die ausführbare Datei heißt
aus dem .spec/.def-Dateinamen, falls vorhanden, oder explizit durch die -F Option. Die
Die resultierende Datei muss zusammengestellt und mit den anderen Objektdateien verknüpft werden, um eine Datei zu erstellen
funktionierende ausführbare Wine-Datei und alle anderen Objektdateien müssen aufgeführt sein als Eingabe
Dateien.

--def Erstellen Sie eine .def-Datei aus einer Spezifikationsdatei. Die .spec-Datei wird über die -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 die -E
.

--Ressourcen
Generieren Sie eine .o-Datei, die alle Eingaberessourcen enthält. Dies ist nützlich beim Bauen
mit einem PE-Compiler, da die PE-Binutils nicht mehrere Ressourcendateien als
Eingang. Bei einem Standard-Unix-Build sind die Ressourcendateien automatisch enthalten
beim Erstellen der Spezifikationsdatei, sodass keine Zwischen-.o-Datei erforderlich ist.

OPTIONAL


--as-cmd=als-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 die Plattform an, auf der der generierte Code erstellt wird. Die
Die Zielspezifikation liegt im Standard-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 ist 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, der einer der folgenden sein muss
Bibliotheken importiert mit dem -l Möglichkeit. Verzögerter Modus bedeutet, dass die Bibliothek nicht
geladen, bis eine daraus importierte Funktion tatsächlich aufgerufen wird.

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

-e, --Eintrag=Funktion
Geben Sie die Modul-Einstiegspunktfunktion an; wenn nicht angegeben, ist die Standardeinstellung DllMain
für DLLs und Haupt- für ausführbare Dateien (wenn die 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 Details) oder eine Standard-Windows-.def
Datei, die die Exporte der DLL oder ausführbaren Datei definiert, die erstellt wird.

--externe-symbole
Verknüpfen mit externen Symbolen direkt aus der Spezifikationsdatei zulassen. Normalerweise Symbole
die von einer DLL exportiert werden, müssen in der DLL selbst definiert werden; diese Option macht es
möglich, Symbole zu verwenden, die in einer anderen Unix-Bibliothek definiert sind (für Symbole, die in
eine andere dll, a Spezifikation muss stattdessen verwendet werden).

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

--fake-modul
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 Heapspeichers des Moduls in Bytes an (nur gültig für Win16-Module);
Standard ist kein lokaler Heap.

-I Verzeichnis
Wird 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
Wird aus Kompatibilitätsgründen mit dem C-Compiler ignoriert.

--große-adress-bewusst
Setzen Sie ein Flag in der ausführbaren Datei, 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 Verzeichnisse an, nach denen gesucht wird
Bibliotheken importieren.

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

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

-marme, -Muthum, -marsch=Option, -mcpu=Option
Legen Sie Codegenerierungsoptionen für den Assembler fest.

-M, --Hauptmodul=Modul
Setzen Sie beim Erstellen einer 16-Bit-DLL den Namen ihres 32-Bit-Gegenstücks auf Modul. Dies
wird verwendet, um zu erzwingen, dass die Ladereihenfolge für die 16-Bit-DLL mit der der
32-Bit-Version.

-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 in KRNL386.EXE lebt. Es sollte sonst nicht benötigt werden.

--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. Die Standardeinstellung ist ja.

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

-R, --res=rsrc.res
Laden Sie Ressourcen aus der angegebenen binären Ressourcendatei. Die rsrc.res Datei kann sein
erzeugt 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 einfach
aufgelistet als Eingabe Dateien und wird automatisch korrekt gehandhabt (obwohl die -r
Option funktioniert auch für Win32-Dateien).

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

--subsystem=Teilsystem[:Dur[.Moll]]
Legen Sie das Subsystem der ausführbaren Datei fest, das eines der folgenden sein kann:
trösten für eine ausführbare Befehlszeile,
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
-Funktion kann stattdessen verwendet werden, wenn Sie das Argumentarray benötigen, um Unicode-Strings zu verwenden.
Eine grafische ausführbare Datei hat a Winmain Einstiegspunkt.
Optional kann auch eine Haupt- und Nebenversion des Subsystems angegeben werden; der Standard
Subsystemversion ist 4.0.

-du, --undefiniert=Symbol
Verwenden Sie Symbol in die Liste der undefinierten Symbole beim Aufrufen des Linkers. Das macht es
möglich, die Aufnahme eines bestimmten Moduls einer statischen Bibliothek zu erzwingen, wenn
Importe lösen.

-v, - ausführlich
Zeigen Sie die verschiedenen Unterbefehle an, die von aufgerufen werden Weinbau.

--Version
Programmversion anzeigen und beenden.

-w, --Warnungen
Schalten Sie Warnungen ein.

SPEC FILE SYNTAX


Allgemeines Syntax
Eine Spezifikationsdatei sollte eine Liste von Ordinaldeklarationen 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 a . maskiert
Backslash-Zeichen. Die # Zeichen an einer beliebigen Stelle in einer Zeile bewirkt, dass der Rest der Zeile
als Kommentar ignoriert.

Ordinal- gibt die Ordnungszahl an, die dem Einstiegspunkt entspricht, oder '@' für
automatische Ordinalzuweisung (nur Win32).

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

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

-kein Name
Der Einstiegspunkt wird nach Ordinalzahl anstatt nach Name exportiert. Der Name ist
noch für den Import verfügbar.

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

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

-Neu 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 Ordinalzahl statt nach Name importiert. Der Name ist
noch exportiert.

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

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

Diese Deklaration definiert einen Funktionseintrittspunkt. Der Prototyp definiert durch
Exportname ( [Argumente...] ) gibt den für die dynamische Verknüpfung verfügbaren Namen und das Format an
der Argumente. '@' kann anstelle von verwendet werden Exportname für rein ordinale 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 mit 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 dem dieser Anruf Aufrufkonvention (erster Parameter
im %ecx-Register auf i386)

args sollte einer oder mehrere sein:

Wort (16-Bit-Wert ohne Vorzeichen)

Schwert (16-Bit-Wort mit Vorzeichen)

lange (Integer-Wert in Zeigergröße)

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 einen nullterminierten ASCII-String).

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

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

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

@stdcall GetFocus() GetFocus

Dieses zweite Beispiel definiert einen Einstiegspunkt für den 16-Bit-CreateWindow()-Aufruf (die Ordinalzahl
100 ist nur ein Beispiel); es zeigt auch, wie lange Zeilen mit einem Backslash geteilt werden können:

100 Pascal CreateWindow(ptr ptr lang 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 an als
Varargs und deklarieren Sie es in der C-Datei mit einem '...'-Parameter für eine Win32-Funktion oder mit
ein zusätzliches Argument VA_LIST16 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 Hex-Zahl, der "0x" vorangestellt ist. Das folgende Beispiel definiert die Variable VariableA at
Ordnungszahl 2 und enthält 4 Ints:

2 variabel 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 auf ein C-Symbol (Variable oder Funktion) abgebildet 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 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, wird als identisch mit . angenommen 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
dynamisches Verknüpfen, beendet jedoch die Ausführung mit einer Fehlermeldung, wenn die Funktion
jemals angerufen.

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

Diese Deklaration definiert eine Ordnungszahl als absoluten Wert. Exportname wird der Name sein
für dynamisches Verknüpfen verfügbar. technische Daten kann eine Dezimalzahl oder eine Hexzahl mit vorangestelltem 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 beigetragen. Eine vollständige Liste finden Sie im git
Commit-Logs.

Verwenden Sie winebuild-development online mit den onworks.net-Diensten


Ad


Ad