אנגליתצרפתיתספרדי

Ad


סמל OnWorks

בניית יין-פיתוח - מקוון בענן

הפעל פיתוח בניית יין בספק אירוח חינמי של OnWorks על גבי Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זהו פיתוח הפקודה של בניית יין שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו בחינם כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


winebuild - Wine dll בונה

תַקצִיר


בניית יין [אפשרויות] [קובץ קלט...]

תיאור


בניית יין מייצר את קבצי ה-assembly הדרושים לבניית קובץ dll של Wine, כלומר
בעצם dll של Win32 המובלע בתוך ספריית יוניקס.

בניית יין יש מצבים שונים, תלוי איזה סוג קובץ הוא מתבקש ליצור. ה
מצב מוגדר על ידי אחת מאפשרויות המצב המפורטות להלן. בנוסף למצב
אפשרות, ניתן לציין אפשרויות שונות אחרות של שורת הפקודה, כמתואר ב- אפשרויות
סָעִיף.

MODE אפשרויות


עליך לציין בדיוק אחת מהאפשרויות הבאות, בהתאם למה שאתה רוצה
בניית יין כדי ליצור.

--dll בנה קובץ assembly מקובץ ‎.spec (ראה SPEC קובץ תחביר לפרטים), או
מקובץ .def רגיל של Windows. קובץ ה-.spec/.def מצוין באמצעות ה- -E
אוֹפְּצִיָה. יש להרכיב את הקובץ המתקבל ולקשר אותו לקבצי האובייקט האחרים
לבנות קובץ Wine dll עובד. במצב זה, ה קלט קבצים צריכה להיות הרשימה של
כל קבצי האובייקט שיקושרו ל-dll הסופי, כדי לאפשר בניית יין כדי לקבל
הרשימה של כל הסמלים הלא מוגדרים שיש לייבא מקבצי dll אחרים.

--exe בנה קובץ assembly עבור קובץ הפעלה. זה בעצם זהה ל- --dll
מצב פרט לכך שהוא אינו דורש קובץ .spec/.def כקלט, שכן קובץ הפעלה
לא צריך לייצא פונקציות. עם זאת, חלק מקובצי ההפעלה עושים פונקציות ייצוא, ועבור
ניתן לציין קובץ .spec/.def באמצעות ה- -E אוֹפְּצִיָה. שם הקובץ ההפעלה
משם הקובץ .spec/.def אם קיים, או במפורש דרך ה- -F אוֹפְּצִיָה. ה
יש להרכיב ולקשר את הקובץ המתקבל לקבצי האובייקט האחרים כדי לבנות א
קובץ הפעלה Wine עובד, וכל שאר קבצי האובייקט חייבים להיות רשומים בתור קלט
קבצים.

--בהגדרה בנה קובץ .def מקובץ מפרט. קובץ ה-.spec מצוין באמצעות ה- -E אוֹפְּצִיָה.
זה משמש בעת בניית קבצי dll עם מהדר PE (Win32).

--implib
בנה ספריית ייבוא ​​PE מקובץ מפרט. קובץ ה-.spec מצוין באמצעות ה- -E
אוֹפְּצִיָה.

--אֶמְצָעִי
צור קובץ .o המכיל את כל משאבי הקלט. זה שימושי בעת בנייה
עם מהדר PE, מכיוון שה-Binutils PE לא יכול להתמודד עם קבצי משאבים מרובים כמו
קֶלֶט. עבור מבנה Unix סטנדרטי, קבצי המשאבים נכללים באופן אוטומטי
בעת בניית קובץ המפרט, כך שאין צורך בקובץ .o ביניים.

אפשרויות


--as-cmd=כפקודה
ציין את הפקודה לשימוש כדי להדר קבצי assembly; ברירת המחדל היא as.

-ב, --מטרה=יצרן מעבד[-גרעין]-os
ציין את מעבד היעד והפלטפורמה שעליהן ייבנה הקוד שנוצר. ה
מפרט היעד הוא בפורמט autoconf הסטנדרטי כפי שהוחזר על ידי config.sub.

--cc-cmd=הפקודה cc
ציין את מהדר C לשימוש כדי להדר קבצי assembly; ברירת המחדל היא במקום זאת
השתמש ב-assembler שצוין עם --as-cmd.

-ד, --delay-lib=שם
הגדר את מצב הייבוא ​​המושהה עבור הספרייה שצוינה, אשר חייבת להיות אחת מה-
ספריות המיובאות עם ה -l אוֹפְּצִיָה. מצב מושהה אומר שהספרייה לא תהיה
נטען עד שפונקציה המיובאת ממנה נקראת בפועל.

-D סמל
התעלמו בגלל תאימות עם מהדר C.

, --כניסה=פונקציה
ציין את פונקציית נקודת הכניסה של המודול; אם לא צוין, ברירת המחדל היא DllMain
עבור קבצי dll, ו ראשי עבור קובצי הפעלה (אם התקן C ראשי לא מוגדר, Winmain
משמש במקום זאת). זה תקף רק עבור מודולי Win32.

-ה, --ייצוא=שם הקובץ
ציין קובץ ‎.spec (ראה SPEC קובץ תחביר לפרטים), או גרסה רגילה של Windows.def
קובץ שמגדיר את הייצוא של ה-DLL או קובץ ההפעלה שנבנה.

--סימנים חיצוניים
אפשר קישור לסמלים חיצוניים ישירות מקובץ המפרט. בדרך כלל סמלים
מיוצא על ידי dll צריך להיות מוגדר ב-dll עצמו; אפשרות זו עושה את זה
אפשר להשתמש בסמלים המוגדרים בספריית יוניקס אחרת (עבור סמלים המוגדרים ב
dll אחר, א קָדִימָה יש להשתמש במפרט במקום).

-f אוֹפְּצִיָה
ציין אפשרות ליצירת קוד. כַּיוֹם -fPIC ו -פא-סינכרוני-פריק-שולחנות
נתמכים. מתעלמים מאפשרויות אחרות בגלל תאימות עם מהדר C.

--מודול מזויף
צור מודול PE מזויף עבור dll או exe, במקום ההרכבה או האובייקט הרגילים
קוֹבֶץ. מודול PE מכיל את המשאבים עבור המודול, אך אין קוד הפעלה.

-ו, --שם קובץ=שם הקובץ
הגדר את שם הקובץ של המודול. ברירת המחדל היא להשתמש בשם הבסיס של המפרט
קובץ (ללא כל סיומת).

-ח, - עזרה
הצג הודעת שימוש וצא.

-ח, --ערמה=גודל
ציין את גודל הערימה המקומית של המודול בבתים (תקף רק עבור מודולי Win16);
ברירת המחדל אינה ערימה מקומית.

-I בספרייה
התעלמו בגלל תאימות עם מהדר C.

-ק, --להרוג ב
הסר את עיטורי stdcall משמות הסמלים בקובץ ה-.def שנוצר.
רק משמעותי ב --בהגדרה מצב.

-K דגלים
התעלמו בגלל תאימות עם מהדר C.

---large-address-aware
הגדר דגל בקובץ ההפעלה כדי להודיע ​​לטוען שהיישום הזה תומך בו
מרחבי כתובות גדולים מ-2 גיגה-בייט.

--ld-cmd=ld-פקודה
ציין את הפקודה לשימוש כדי לקשר את קבצי האובייקט; ברירת המחדל היא ld.

-ל, --library-path=בספרייה
הוסף את הספרייה שצוינה לרשימת הספריות שמחפשים
ייבוא ​​ספריות.

-ל, --ספרייה=שם
ייבא את הספרייה שצוינה, מחפש ספרייה מתאימה libname.def הקובץ
ספריות שצוינו עם -L אוֹפְּצִיָה.

-מ16, -מ32, -מ 64
צור קוד של 16 סיביות, 32 סיביות או 64 סיביות בהתאמה.

-מרם, -אגודל, -מרץ=אוֹפְּצִיָה, -mcpu=אוֹפְּצִיָה
הגדר אפשרויות יצירת קוד עבור האסמבלר.

-M, ---main-module=מודול
בעת בניית קובץ dll של 16 סיביות, הגדר את השם של מקבילו ל-32 סיביות ל מודול. זֶה
משמש כדי לאכוף שסדר הטעינה עבור ה-dll של 16 סיביות תואם לזה של ה-
אחד 32 סיביות.

-נ, --dll-name=שם dll
הגדר את השם הפנימי של המודול. הוא משמש רק במודולים של Win16. ברירת המחדל
הוא להשתמש בשם הבסיס של קובץ המפרט (ללא כל סיומת). זה משמש עבור
KERNEL, מכיוון שהוא חי ב-KRNL386.EXE. זה לא צריך להיות נחוץ אחרת.

--nm-cmd=nm-פקודה
ציין את הפקודה שבה יש להשתמש כדי לקבל את רשימת הסמלים הלא מוגדרים; ברירת המחדל היא nm.

--nxcompat=כן|לא
ציין אם המודול תואם לתמיכה ב-no-exec. ברירת המחדל היא כן.

-או, --פלט=פילה
הגדר את השם של קובץ הפלט (ברירת המחדל היא פלט סטנדרטי). אם קובץ הפלט
שם מסתיים ב-.o, פלט הטקסט נשלח לקובץ זמני שנאסף לאחר מכן
כדי להפיק את קובץ ה-.o שצוין.

-ר, --res=rsrc.res
טען משאבים מקובץ המשאב הבינארי שצוין. ה rsrc.res הקובץ יכול להיות
מופק מקובץ משאב מקור עם wrc(1) (או עם משאב של Windows
מַהְדֵר).
אפשרות זו נחוצה רק עבור קבצי משאבים של Win16, אלה של Win32 יכולים פשוט
רשום כ קלט קבצים ויטופל באופן אוטומטי בצורה נכונה (אם כי -r
האפשרות תעבוד גם עבור קבצי Win32).

--לשמור-טמפרטורות
אל תמחק את הקבצים הזמניים השונים בניית יין מייצר.

--תת מערכת=תת מערכת[:גדול[.קטין]]
הגדר את תת-המערכת של קובץ ההפעלה, שיכול להיות אחד מהבאים:
לנחם עבור קובץ הפעלה של שורת פקודה,
חלונות עבור קובץ הפעלה גרפי,
יליד עבור dll במצב מקורי,
להתכווץ עבור ce dll.
נקודת הכניסה של קובץ הפעלה של שורת פקודה היא C רגילה ראשי פוּנקצִיָה. א wmain
ניתן להשתמש בפונקציה במקום זאת אם אתה צריך את מערך הארגומנטים כדי להשתמש במחרוזות Unicode.
לקובץ הפעלה גרפי יש a Winmain נקודת כניסה.
לחלופין, ניתן לציין גם גרסת תת-מערכת גדולה ומינורית; ברירת המחדל
גרסת המשנה היא 4.0.

-את, --לא מוגדר=סמל
להוסיף סמל לרשימת הסמלים הלא מוגדרים בעת הפעלת המקשר. זה עושה את זה
ניתן לאלץ מודול ספציפי של ספרייה סטטית להיכלל כאשר
פתרון יבוא.

-ב, --מִלוּלִי
הצג את פקודות המשנה השונות המופעלות על ידי בניית יין.

--גִרְסָה
הצג את גרסת התוכנית וצא.

-וו, --אזהרות
הפעל אזהרות.

SPEC קובץ תחביר


כללי תחביר
קובץ מפרט צריך להכיל רשימה של הצהרות רגילות. התחביר הכללי הוא ה
הבא:

סידור functype [דגלים] שם ייצוא ( [ארגונים...] ) [מטפל]
סידור משתנה [דגלים] שם ייצוא ( [נתונים...] )
סידור חיצוני [דגלים] שם ייצוא [שם סמל]
סידור בדל [דגלים] שם ייצוא [ (ארגונים...) ]
סידור לשוות [דגלים] שם ייצוא נתונים
# הערות

ההצהרות חייבות להתאים על שורה בודדת, למעט אם קצה השורה נשלח באמצעות א
תו נטוי אחורי. ה # תו בכל מקום בשורה גורם לשאר השורה להיות
התעלמו כהערה.

סידור מציין את המספר הסידורי המתאים לנקודת הכניסה, או '@' עבור
הקצאה סידורית אוטומטית (Win32 בלבד).

דגלים הוא סדרה של דגלים אופציונליים, שלפניהם תו '-'. הדגלים הנתמכים הם:

-נורליי
נקודת הכניסה אינה מוצגת במעקבי ניפוי באגים ממסר (Win32 בלבד).

-ללא שם
נקודת הכניסה תיוצא לפי סידור במקום לפי שם. השם הוא
עדיין זמין לייבוא.

-ret16 הפונקציה מחזירה ערך של 16 סיביות (Win16 בלבד).

-ret64 הפונקציה מחזירה ערך של 64 סיביות (Win32 בלבד).

-הירשם
הפונקציה משתמשת ברישום CPU כדי להעביר ארגומנטים.

-פְּרָטִי
לא ניתן לייבא את הפונקציה מקבצי dll אחרים, ניתן לגשת אליה רק
דרך GetProcAddress.

-סוֹדֵר
נקודת הכניסה תיובא לפי סידור במקום לפי שם. השם הוא
עדיין מיוצא.

-arch=מעבד[,מעבד]
נקודת הכניסה זמינה רק בארכיטקטורות ה-CPU שצוינו. ה
שמות win32 ו win64 להתאים לכל ארכיטקטורות המעבד של 32 סיביות או 64 סיביות
בהתאמה. בקבצי dll של 16 סיביות, ציון -arch=win32 גורם לנקודת הכניסה
לייצא ממודול העטיפה של 32 סיביות.

פונקציה סידורים
תחביר:
סידור functype [דגלים] שם ייצוא ( [ארגונים...] ) [מטפל]

הצהרה זו מגדירה נקודת כניסה לפונקציה. אב הטיפוס שהוגדר על ידי
שם ייצוא ( [ארגונים...] ) מציין את השם הזמין עבור קישור דינמי ואת הפורמט
של הטיעונים. ניתן להשתמש ב-'@' במקום שם ייצוא ליצוא רגיל בלבד.

functype צריך להיות אחד מ:

stdcall
עבור פונקציית Win32 רגילה

פסקל עבור פונקציית Win16 רגילה

cdecl עבור פונקציית Win16 או Win32 באמצעות מוסכמה קריאת C

varargs
עבור פונקציה Win16 או Win32 באמצעות מוסכמה C calling עם משתנה
מספר טיעונים

שיחה זו
עבור פונקציית Win32 באמצעות שיחה זו כנס שיחות (פרמטר ראשון
ב-%ecx הירשם ב-i386)

טוען צריך להיות אחד או כמה מתוך:

מילה (ערך ללא סימן של 16 סיביות)

חֶרֶב (מילה חתומה 16 סיביות)

ארוך (ערך מספר שלם בגודל מצביע)

int64 (ערך מספר שלם של 64 סיביות)

int128 (ערך מספר שלם של 128 סיביות)

לצוף (ערך נקודה צפה 32 סיביות)

לְהַכפִּיל (ערך נקודה צפה 64 סיביות)

ptr (מצביע ליניארי)

str (מצביע ליניארי למחרוזת ASCII עם סיומת אפס)

wstr (מצביע ליניארי למחרוזת Unicode עם סיומת אפס)

segptr (מצביע מפולח)

segstr (מצביע מפולח למחרוזת ASCII עם סיומת אפס).

הערה: סוגי המצביעים של 16 סיביות ומפולחים תקפים רק עבור פונקציות Win16.

מטפל הוא השם של פונקציית C בפועל שתטמיע את נקודת הכניסה הזו
מצב 32 סיביות. ניתן לציין את המטפל גם בתור שם dll.פונקציה כדי להגדיר מועבר
פונקציה (אחת שהיישום שלה נמצא ב-dll אחר). אם מטפל לא מצוין, זה כן
ההנחה היא שזהה ל שם ייצוא.

דוגמה ראשונה זו מגדירה נקודת כניסה לקריאה של 32 סיביות GetFocus() :

@ stdcall GetFocus() GetFocus

דוגמה שנייה זו מגדירה נקודת כניסה לקריאה של 16 סיביות CreateWindow() (האורדינל
100 הוא רק דוגמה); זה גם מראה כמה קווים ארוכים ניתן לפצל באמצעות נטוי אחורי:

100 פסקל CreateWindow(ptr ptr long s_word s_word s_word \
s_word מילה מילה מילה ptr) WIN_CreateWindow

כדי להכריז על פונקציה באמצעות מספר משתנה של ארגומנטים, ציין את הפונקציה כ
varargs ולהכריז על זה בקובץ C עם פרמטר '...' עבור פונקציית Win32, או עם
ארגומנט נוסף של VA_LIST16 עבור פונקציה Win16. ראה את פונקציות wsprintf* ב
לדוגמא user.exe.spec ו-user32.spec.

מִשְׁתַנֶה סידורים
תחביר:
סידור משתנה [דגלים] שם ייצוא ( [נתונים...] )

הצהרה זו מגדירה את אחסון הנתונים כמילים של 32 סיביות לפי הסדר שצוין.
שם ייצוא יהיה השם הזמין לקישור דינמי. נתונים יכול להיות מספר עשרוני
או מספר משושה שלפניו "0x". הדוגמה הבאה מגדירה את המשתנה VariableA at
סידור 2 ומכיל 4 אינטס:

2 משתנה VariableA(-1 0xff 0 0)

הצהרה זו פועלת רק בקבצי מפרט של Win16. ב-Win32 אתה צריך להשתמש חיצוני במקום
(ראה למטה).

חיצוני סידורים
תחביר:
סידור חיצוני [דגלים] שם ייצוא [שם סמל]

הצהרה זו מגדירה ערך שממפה פשוט לסמל C (משתנה או פונקציה).
זה עובד רק בקבצי מפרט של Win32. שם ייצוא יצביע על הסמל שם סמל זֶה
חייב להיות מוגדר בקוד C. לחלופין, זה יכול להיות בצורה שם dll.שם סמל ל
הגדר סמל מועבר (כזה שהיישום שלו נמצא ב-dll אחר). אם שם סמל is
לא צוין, ההנחה היא שזהה ל שם ייצוא.

בָּדָל סידורים
תחביר:
סידור בדל [דגלים] שם ייצוא [ (ארגונים...) ]

הכרזה זו מגדירה פונקציית stub. זה הופך את השם ואת הסידור לזמינים עבור
קישור דינמי, אך יפסיק את הביצוע עם הודעת שגיאה אם ​​הפונקציה היא
התקשרו אי פעם.

שווה סידורים
תחביר:
סידור לשוות [דגלים] שם ייצוא נתונים

הכרזה זו מגדירה סידור כערך מוחלט. שם ייצוא יהיה השם
זמין לקישור דינמי. נתונים יכול להיות מספר עשרוני או מספר הקסדתי שלפניו
"0x".

מחברים


בניית יין אנשים רבים עבדו עליו במהלך השנים. המחברים הראשיים הם רוברט ג'יי.
אמשטדט, אלכסנדר ג'וליארד, מרטין פון לואיס, אולריך ווייגנד ואריק יאנגדייל. רב
אנשים אחרים תרמו תכונות חדשות ותיקוני באגים. לרשימה מלאה, עיין ב-git
ביצוע יומנים.

השתמש בפיתוח בניית יין באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad