EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

winebuild-development - Online în cloud

Rulați winebuild-development în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda winebuild-development care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


winebuild - Wine dll builder

REZUMAT


winebuild [Opțiuni] [fișier de intrare...]

DESCRIERE


winebuild generează fișierele de asamblare care sunt necesare pentru a construi un dll Wine, adică
practic un dll Win32 încapsulat într-o bibliotecă Unix.

winebuild are moduri diferite, în funcție de ce tip de fișier este solicitat să genereze. The
modul este specificat de una dintre opțiunile de mod specificate mai jos. Pe lângă modul
opțiunea, pot fi specificate diverse alte opțiuni de linie de comandă, așa cum este descris în OPŢIUNI
secţiune.

MODE OPŢIUNI


Trebuie să specificați exact una dintre următoarele opțiuni, în funcție de ceea ce doriți
winebuild pentru a genera.

--dll Construiți un fișier de asamblare dintr-un fișier .spec (vezi SPEC FILE SINTAXĂ pentru detalii), sau
dintr-un fișier standard Windows .def. Fișierul .spec/.def este specificat prin intermediul -E
opțiune. Fișierul rezultat trebuie asamblat și legat de celelalte fișiere obiect
pentru a construi un dll Wine funcțional. În acest mod, intrare fișiere ar trebui să fie lista de
toate fișierele obiect care vor fi legate în dll-ul final, pentru a permite winebuild a obține
lista tuturor simbolurilor nedefinite care trebuie importate din alte dll-uri.

--executabil Construiți un fișier de asamblare pentru un executabil. Acesta este practic același cu --dll
cu excepția faptului că nu necesită un fișier .spec/.def ca intrare, deoarece este un executabil
nu trebuie să exporte funcții. Cu toate acestea, unele executabile fac funcții de export și pentru
acelea un fișier .spec/.def poate fi specificat prin intermediul -E opțiune. Executabilul este numit
din numele fișierului .spec/.def, dacă este prezent, sau în mod explicit prin intermediul -F opțiune.
fișierul rezultat trebuie asamblat și legat de celelalte fișiere obiect pentru a construi a
executabil Wine de lucru și toate celelalte fișiere obiect trebuie listate ca intrare
fișiere.

--def Creați un fișier .def dintr-un fișier cu specificații. Fișierul .spec este specificat prin intermediul -E opțiune.
Acesta este folosit la construirea dll-urilor cu un compilator PE (Win32).

--implib
Construiți o bibliotecă de import PE dintr-un fișier cu specificații. Fișierul .spec este specificat prin intermediul -E
opțiune.

--resurse
Generați un fișier .o care conține toate resursele de intrare. Acest lucru este util când construiești
cu un compilator PE, deoarece binutilurile PE nu pot gestiona mai multe fișiere de resurse ca
intrare. Pentru o versiune standard Unix, fișierele de resurse sunt incluse automat
la construirea fișierului cu specificații, deci nu este nevoie de un fișier intermediar .o.

OPŢIUNI


--as-cmd=ca-comandă
Specificați comanda de utilizat pentru a compila fișiere de asamblare; implicit este as.

-b, --tinta=cpu-producător[-nucleu]-os
Specificați CPU țintă și platforma pe care va fi construit codul generat. The
specificația țintă este în formatul standard autoconf, așa cum este returnat de config.sub.

--cc-cmd=cc-comandă
Specificați compilatorul C de utilizat pentru a compila fișiere de asamblare; implicit este să în schimb
utilizați asamblatorul specificat cu --as-cmd.

-d, --delay-lib=nume
Setați modul de import întârziat pentru biblioteca specificată, care trebuie să fie una dintre cele
biblioteci importate cu -l opțiune. Modul întârziat înseamnă că biblioteca nu va fi
încărcat până când o funcție importată din acesta este de fapt apelată.

-D simbol
Ignorat pentru compatibilitate cu compilatorul C.

-e, --intrare=funcţie
Specificați funcția punct de intrare în modul; dacă nu este specificat, implicit este DllMain
pentru dll-uri și principal pentru executabile (dacă standardul C principal nu este definit, WinMain
este folosit în schimb). Acest lucru este valabil numai pentru modulele Win32.

-E, --export=nume de fișier
Specificați un fișier .spec (vezi SPEC FILE SINTAXĂ pentru detalii), sau un standard Windows .def
fișier care definește exporturile DLL-ului sau executabilului care este construit.

--simboluri-externe
Permite conectarea la simboluri externe direct din fișierul cu specificații. În mod normal, simboluri
exportate de un dll trebuie să fie definite în dll-ul în sine; această opțiune o face
este posibil să se utilizeze simboluri definite într-o altă bibliotecă Unix (pentru simbolurile definite în
un alt dll, a înainte trebuie folosită în schimb specificația).

-f opțiune
Specificați o opțiune de generare a codului. În prezent -fPIC și -tabele-fasynchronous-unwind
sunt suportate. Alte opțiuni sunt ignorate pentru compatibilitate cu compilatorul C.

--modul-fals
Creați un modul PE fals pentru un dll sau un exe, în loc de ansamblul sau obiectul normal
fişier. Modulul PE conține resursele pentru modul, dar niciun cod executabil.

-F, --filename=nume de fișier
Setați numele fișierului modulului. Implicit este utilizarea numelui de bază al specificației
fișier (fără nicio extensie).

-h, --Ajutor
Afișați un mesaj de utilizare și ieșiți.

-H, --heap=mărimea
Specificați dimensiunea heap-ului local al modulului în octeți (valid numai pentru modulele Win16);
implicit nu este heap local.

-I director
Ignorat pentru compatibilitate cu compilatorul C.

-k, --ucide-la
Eliminați decorațiunile stdcall din numele simbolurilor din fișierul .def generat.
Numai semnificativ în --def Mod.

-K steaguri
Ignorat pentru compatibilitate cu compilatorul C.

--conștient-adresă-mare
Setați un semnalizator în executabil pentru a notifica încărcătorul că această aplicație acceptă
spații de adrese mai mari de 2 gigaocteți.

--ld-cmd=ld-comanda
Specificați comanda de utilizat pentru a lega fișierele obiect; implicit este ld.

-L, --library-path=director
Adăugați directorul specificat la lista de directoare căutate
importa biblioteci.

-l, --biblioteca=nume
Importă biblioteca specificată, căutând o corespunzătoare libname.def de fișier în
directoarele specificate cu -L opțiune.

-m16, -m32, -m64
Generați cod de 16 biți, respectiv 32 de biți sau 64 de biți.

-marma, -degetul mare, -martie=opțiune, -mcpu=opțiune
Setați opțiunile de generare a codului pentru asamblator.

-M, --main-module=modul
Când construiți un dll pe 16 biți, setați numele omologului său pe 32 de biți la modul. Acest
este folosit pentru a impune ca ordinea de încărcare pentru dll-ul pe 16 biți să se potrivească cu cea a
unul pe 32 de biți.

-N, --dll-name=dllname
Setați numele intern al modulului. Este folosit doar în modulele Win16. Implicit
este să utilizați numele de bază al fișierului cu specificații (fără nicio extensie). Acesta este folosit pentru
KERNEL, deoarece locuiește în KRNL386.EXE. Altfel nu ar trebui să fie nevoie.

--nm-cmd=comanda nm
Specificați comanda de utilizat pentru a obține lista de simboluri nedefinite; implicit este nm.

--nxcompat=da|Nu.
Specificați dacă modulul este compatibil cu suportul no-exec. Valoarea implicită este da.

-o, --ieșire=fişier
Setați numele fișierului de ieșire (ieșirea standard este implicită). Dacă fișierul de ieșire
numele se termină în .o, rezultatul textului este trimis într-un fișier temporar care este apoi asamblat
pentru a produce fișierul .o specificat.

-r, --res=rsrc.res
Încărcați resurse din fișierul de resurse binar specificat. The rsrc.res fisierul poate fi
produs dintr-un fișier resursă sursă cu wrc(1) (sau cu o resursă Windows
compilator).
Această opțiune este necesară doar pentru fișierele de resurse Win16, cele Win32 pot pur și simplu
listat ca intrare fișiere și vor fi automat gestionate corect (deși -r
opțiunea va funcționa și pentru fișierele Win32).

--save-temps
Nu ștergeți diferitele fișiere temporare care winebuild generează.

--subsistem=subsistem[:major[.minor]]
Setați subsistemul executabilului, care poate fi unul dintre următoarele:
consolă pentru un executabil în linie de comandă,
ferestre pentru un executabil grafic,
nativ pentru un dll în mod nativ,
tresări pentru un ce dll.
Punctul de intrare al unui executabil în linia de comandă este un C normal principal funcţie. A wmain
funcția poate fi folosită în schimb dacă aveți nevoie de matricea de argumente pentru a utiliza șiruri Unicode.
Un executabil grafic are un WinMain punct de intrare.
Opțional poate fi specificată și o versiune majoră și minoră a subsistemului; implicit
versiunea subsistemului este 4.0.

-u, --nedefinit=simbol
Adăuga simbol la lista de simboluri nedefinite la invocarea linkerului. Asta face
posibil să forțați un anumit modul al unei biblioteci statice să fie inclus când
rezolvarea importurilor.

-v, --verbos
Afișează diferitele subcomenzi invocate de winebuild.

--versiune
Afișați versiunea programului și ieșiți.

-w, --Avertizări
Activați avertismentele.

SPEC FILE SINTAXĂ


General sintaxă
Un fișier cu specificații ar trebui să conțină o listă de declarații ordinale. Sintaxa generală este
Următor:

ordinal functype [steaguri] exportname ( [argumente...] ) [manipulant]
ordinal variabil [steaguri] exportname ( [date...] )
ordinal extern [steaguri] exportname [nume simbol]
ordinal ciot [steaguri] exportname [ (argumente...) ]
ordinal echivala [steaguri] exportname de date
# comentarii

Declarațiile trebuie să se potrivească pe o singură linie, cu excepția cazului în care capătul de linie este scapat folosind a
caracter backslash. The # caracter oriunde într-o linie face ca restul liniei să fie
ignorat ca comentariu.

ordinal specifică numărul ordinal corespunzător punctului de intrare sau „@” pentru
alocare ordinală automată (numai Win32).

steaguri este o serie de steaguri opționale, precedate de un caracter „-”. Steaguri acceptate sunt:

-norelay
Punctul de intrare nu este afișat în urmele de depanare a releului (numai Win32).

-fara nume
Punctul de intrare va fi exportat prin ordinal și nu după nume. Numele este
încă disponibil pentru import.

-ret16 Funcția returnează o valoare de 16 biți (numai Win16).

-ret64 Funcția returnează o valoare de 64 biți (numai Win32).

-Inregistreaza-te
Funcția folosește registrul CPU pentru a transmite argumente.

-privat
Funcția nu poate fi importată din alte dll-uri, poate fi doar accesată
prin GetProcAddress.

-ordinal
Punctul de intrare va fi importat prin ordinal în loc de nume. Numele este
încă exportate.

-arc=cpu[,cpu]
Punctul de intrare este disponibil numai pe arhitectura (arhitecturile CPU) specificate. The
nume win32 și win64 se potrivesc cu toate arhitecturile CPU pe 32 de biți sau 64 de biți
respectiv. În dll-uri pe 16 biți, specificând -arch=win32 cauzează punctul de intrare
pentru a fi exportat din modulul wrapper pe 32 de biți.

Funcţie ordinale
Sintaxă:
ordinal functype [steaguri] exportname ( [argumente...] ) [manipulant]

Această declarație definește un punct de intrare în funcție. Prototipul definit de
exportname ( [argumente...] ) specifică numele disponibil pentru legarea dinamică și formatul
a argumentelor. „@” poate fi folosit în loc de exportname pentru exporturi numai ordinale.

functype ar trebui să fie unul dintre:

stdcall
pentru o funcție Win32 normală

Pascal pentru o funcție Win16 normală

cdecl pentru o funcție Win16 sau Win32 folosind convenția de apelare C

varargs
pentru o funcție Win16 sau Win32 folosind convenția de apelare C cu o variabilă
număr de argumente

acest apel
pentru o funcție Win32 folosind acest apel convenție de apelare (primul parametru
în registrul %ecx pe i386)

args ar trebui să fie unul sau mai multe dintre:

cuvânt (valoare fără semn pe 16 biți)

sabie (cuvânt semnat pe 16 biți)

lung (valoare întreagă de mărimea unui indicator)

int64 (valoare întreagă de 64 de biți)

int128 (valoare întreagă de 128 de biți)

pluti (valoare în virgulă mobilă de 32 de biți)

dubla (valoare în virgulă mobilă de 64 de biți)

PTR (indicator liniar)

str (indicator liniar către un șir ASCII terminat cu nul)

wstr (indicator liniar către un șir Unicode terminat cu nul)

secptr (indicator segmentat)

segstr (indicator segmentat către un șir ASCII terminat cu nul).

Notă: Tipurile de pointer pe 16 biți și segmentate sunt valabile numai pentru funcțiile Win16.

manipulant este numele funcției C actuale care va implementa acel punct de intrare în
modul pe 32 de biți. Handler-ul poate fi specificat și ca dllname.funcţie pentru a defini un transmis
funcție (una a cărei implementare este într-un alt dll). Dacă manipulant nu este specificat, este
presupus a fi identic cu exportname.

Acest prim exemplu definește un punct de intrare pentru apelul GetFocus() pe 32 de biți:

@ stdcall GetFocus() GetFocus

Acest al doilea exemplu definește un punct de intrare pentru apelul CreateWindow() pe 16 biți (ordinalul
100 este doar un exemplu); de asemenea, arată cât de lungi pot fi împărțite liniile folosind o bară oblică inversă:

100 pascal CreateWindow(ptr ptr long s_word s_word s_word \
s_word cuvânt cuvânt cuvânt ptr) WIN_CreateWindow

Pentru a declara o funcție folosind un număr variabil de argumente, specificați funcția ca
varargs și declarați-l în fișierul C cu un parametru „...” pentru o funcție Win32, sau cu
un argument suplimentar VA_LIST16 pentru o funcție Win16. Vedeți funcțiile wsprintf* în
user.exe.spec și user32.spec de exemplu.

Variabil ordinale
Sintaxă:
ordinal variabil [steaguri] exportname ( [date...] )

Această declarație definește stocarea datelor ca cuvinte pe 32 de biți la ordinalul specificat.
exportname va fi numele disponibil pentru conectarea dinamică. de date poate fi un număr zecimal
sau un număr hex precedat de „0x”. Următorul exemplu definește variabila VariableA at
ordinal 2 și care conține 4 inți:

2 variabilă VariabilaA(-1 0xff 0 0)

Această declarație funcționează numai în fișierele cu specificații Win16. În Win32 ar trebui să utilizați extern in schimb
(Vezi mai jos).

extern ordinale
Sintaxă:
ordinal extern [steaguri] exportname [nume simbol]

Această declarație definește o intrare care pur și simplu se mapează la un simbol C (variabilă sau funcție).
Funcționează numai în fișierele cu specificații Win32. exportname va indica simbolul nume simbol acea
trebuie definite în codul C. Alternativ, poate fi de forma dllname.nume simbol la
definiți un simbol redirecționat (unul a cărui implementare este într-un alt dll). Dacă nume simbol is
nespecificat, se presupune că este identic cu exportname.

Ciot ordinale
Sintaxă:
ordinal ciot [steaguri] exportname [ (argumente...) ]

Această declarație definește o funcție stub. Face numele și ordinalul disponibile pentru
legătură dinamică, dar va încheia execuția cu un mesaj de eroare dacă funcția este
sunat vreodată.

Echivala ordinale
Sintaxă:
ordinal echivala [steaguri] exportname de date

Această declarație definește un ordinal ca valoare absolută. exportname va fi numele
disponibil pentru conexiunea dinamică. de date poate fi un număr zecimal sau un număr hexadecimal precedat de
„0x”.

AUTORI


winebuild a fost lucrat de mulți oameni de-a lungul anilor. Autorii principali sunt Robert J.
Amstadt, Alexandre Julliard, Martin von Loewis, Ulrich Weigand și Eric Youngdale. Mulți
alte persoane au contribuit cu noi funcții și remedieri de erori. Pentru o listă completă, consultați git
jurnalele de comitere.

Utilizați winebuild-development online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad