זהו נקודת הפקודה שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
perlce - Perl עבור WinCE
בִּניָן פרל ל WinCE
אזהרה
הַרבֵּה of זֶה מסמך יש ל להיות מאוד הַחוּצָה of נתונים ו צרכי עִדכּוּן, שִׁכתוּב or
מחיקה. השמיים לִבנוֹת תהליך היה שיפוץ בְּמַהֲלָך מה היא 5.19 פיתוח לעקוב ו מה היא
נוֹכְחִי הוראות as of זֶה זמן יש לו נתן in "נוֹכְחִי לבנות הוראות"; מה היא
קודם לִבנוֹת הוראות, אשר יש לו במידה רבה הוחלף אבל אולי עוד להכיל כמה
מועיל מֵידָע, יש לו עזבו in "ישן לבנות הוראות" אבל בֶּאֱמֶת צורך הסרת לאחר
דבר of להשתמש יש ל היה חילוץ החל מ- אותם.
תיאור
קובץ זה נותן את ההוראות לבניית Perl5.8 ומעלה עבור WinCE. בבקשה תקרא
ולהבין את התנאים לפיהם תוכנה זו מופצת.
כללי הסברים on הידור צולב WinCE
· מיניפרל בנוי. זהו קובץ הפעלה יחיד (ללא DLL), המיועד להפעלה
Win32, וזה יקל על תהליך הבנייה שנותר; כל הקבצים הבינאריים שנבנו אחריו הם
זר ולא צריך לרוץ מקומי.
מיניפרל נבנה באמצעות ./win32/Makefile; זה חלק מתהליך הבנייה הרגיל שהופעל
כתלות ב-wince/Makefile.ce
· לאחר מיניפרל בנוי, configpm מופעל כדי ליצור זכות Config.pm במקום הנכון
והמתאים לו Cross.pm.
בניגוד ל-Win32 build, ל-miniperl לא יהיה Config.pm של מארח בהישג יד; זה דווקא
אשתמש Config.pm מתוך ספריות קומפילציה צולבות.
שלח Cross.pm הוא פשוט לגמרי: עבור מקומות חוצי ארכיטקטורה נתון ב-@INC נתיב שבו
מודולי perl הם, ונכון Config.pm במקום הזה.
עם זאת, "miniperl -Ilib -MConfig -we 1" אמור לדווח על שגיאה, מכיוון שהוא לא יכול
למצוא Config.pm. אם זה לא נותן שגיאה - לא נכון Config.pm מוחלף, ו
בינאריים שיתקבלו יהיו בלגן.
"miniperl -MCross -MConfig -we 1" אמור לפעול בסדר, והוא יספק כמו שצריך Config.pm
להידורים נוספים.
· במהלך שלב הבנייה של הרחבות, סקריפט ./win32/buldext.pl מופעל, אשר בתורו
נכנס פנימה ./ext ספריות משנה ומבצע בנייה של כל הרחבה בתורו.
כל הפניות של Makefile.PL מסופקים עם "-MCross" כדי לאפשר קומפילציה צולבת.
נוֹכְחִי לבנות הוראות
(הוראות אלה מניחות שהמארח הוא Windows 32 סיביות. אם אתה משתמש ב-Windows 64 סיביות אז
שנה את "C:\Program Files" ל-"C:\Program Files (x86)" לאורך כל הדרך.)
1. התקן את EVC4 מ
http://download.microsoft.com/download/c/3/f/c3f8b58b-9753-4c2e-8b96-2dfe3476a2f7/eVC4.exe
השתמש במפתח המוזכר ב
http://download.cnet.com/Microsoft-eMbedded-Visual-C/3000-2212_4-10108490.html?tag=bc
המתקין הוא עתיק ויש לו כמה באגים בנתיבים שבהם הוא משתמש. תצטרך לתקן
אותם מאוחר יותר. בעיקרון, חלק מהדברים נכנסים ל-"C:/Program Files/Windows CE Tools", אחרים הולכים
לתוך "C:/Windows CE Tools" ללא קשר לנתיב שנתת למתקין (ברירת המחדל
יהיה "C:/Windows CE Tools"). יידרש אתחול כדי שהמתקין ימשיך.
כמו כן, אסוציאציות של .c ו-.h עם Visual Studio עשויות לעקוף בעת התקנת EVC4.
ראה הוזהרת.
2. הורד את celib מ-GitHub (באמצעות "הורד ZIP") בכתובת
https://github.com/bulk88/celib
חלץ אותו לנתיב חסר חלל אך לא למקור הבנייה של perl. אני קורא למדריך הזה
"celib-palm-3.0" אבל בתמונת ה-GitHub זה ייקרא "celib-master". צור עותק
של התיקיה "wince-arm-pocket-wce300-release" ושנה את שם העותק ל
"כווץ-זרוע-כיס-wce400". זוהי פריצה כדי שנוכל לבנות CE 4.0 בינארי על ידי קישור ב-CE
3.0 ARM asm; למקשר לא אכפת. Windows Mobile/WinCE תואמים לאחור עם
קוד מכונה כמו Windows Desktop.
3. הורד את console-1.3-src.tar.gz מ
http://sourceforge.net/projects/perlce/files/PerlCE%20support%20files/console/
חלץ אותו לנתיב חסר חלל אך לא למקור הבנייה של perl. אל תחלץ את זה לתוכו
אותה ספרייה כמו celib. צור עותק של התיקיה "wince-arm-pocket-wce300" ו
שנה את שם העותק ל-"wince-arm-pocket-wce400". זו פריצה כדי שנוכל לבנות CE 4.0
בינארי על ידי קישור ב-CE 3.0 ARM asm; למקשר לא אכפת. Windows Mobile/WinCE הם
תואם לאחור עם קוד מכונה כמו Windows Desktop.
4. פתח שורת פקודה, הפעל את קובץ האצווה הרגיל שלך כדי להגדיר את הסביבה עבור שולחן העבודה
בניית Visual C, עבור אל ספריית המקור של perl, תקליטור לתוך win32/, מלא Makefile, ו
בצע "nmake all" כדי לבנות פרל שולחני.
5. פתח את win32/Makefile.ce בעורך טקסט ועשה משהו דומה להלן
תיקון.
-CELIBDLLDIR = h:\src\wince\celib-palm-3.0
-CECONSOLEDIR = h:\src\wince\w32console
+CELIBDLLDIR = C:\sources\celib-palm-3.0
+CECONSOLEDIR = C:\sources\w32console
גם לשנות
!if "$(MACHINE)" == ""
MACHINE=wince-arm-hpc-wce300
#MACHINE=wince-arm-hpc-wce211
#MACHINE=wince-sh3-hpc-wce211
#MACHINE=wince-mips-hpc-wce211
#MACHINE=wince-sh3-hpc-wce200
#MACHINE=wince-mips-hpc-wce200
#MACHINE=כווץ-זרוע-כיס-wce300
#MACHINE=wince-mips-pocket-wce300
#MACHINE=wince-sh3-pocket-wce300
#MACHINE=wince-x86em-pocket-wce300
#MACHINE=wince-mips-palm-wce211
#MACHINE=wince-sh3-palm-wce211
#MACHINE=wince-x86em-palm-wce211
#MACHINE=wince-x86-hpc-wce300
#MACHINE=כווץ-זרוע-כיס-wce400
!endif
ל
!if "$(MACHINE)" == ""
#MACHINE=wince-arm-hpc-wce300
#MACHINE=wince-arm-hpc-wce211
#MACHINE=wince-sh3-hpc-wce211
#MACHINE=wince-mips-hpc-wce211
#MACHINE=wince-sh3-hpc-wce200
#MACHINE=wince-mips-hpc-wce200
#MACHINE=כווץ-זרוע-כיס-wce300
#MACHINE=wince-mips-pocket-wce300
#MACHINE=wince-sh3-pocket-wce300
#MACHINE=wince-x86em-pocket-wce300
#MACHINE=wince-mips-palm-wce211
#MACHINE=wince-sh3-palm-wce211
#MACHINE=wince-x86em-palm-wce211
#MACHINE=wince-x86-hpc-wce300
MACHINE=כווץ-זרוע-כיס-wce400
!endif
אז wince-arm-pocket-wce400 הוא מסוג MACHINE.
6. השתמש בעורך טקסט כדי לפתוח את "C:\Program Files\Microsoft eMbedded C++
4.0\EVC\WCE400\BIN\WCEARMV4.BAT". חפש
אם "%SDKROOT%"=="" הגדר SDKROOT=...
בהתקנה חדשה זה "C:\Windows CE Tools". עבור אל "C:\Windows CE Tools" במנהל קבצים
וראה אם "C:\Windows CE Tools\wce400\STANDARDSDK\Include\Armv4" קיים בדיסק שלך. אם
לא צריך לשנות את ה-SDKROOT ל-"C:\Program Files\Windows CE Tools".
עבור אל celib-palm-3.0\inc\cewin32.h, חפש
typedef struct _ABC {
ולבטל את ההערות על המבנה.
7. פתח שורת פקודה נוספת, ודא ש-PLATFORM לא מוגדר כבר לשום דבר אלא אם כן
לדעת מה אתה עושה (כדי שערך ברירת המחדל הנכון נקבע על ידי הפקודה הבאה), ו
הפעל את "C:\Program Files\Microsoft eMbedded C++ 4.0\EVC\WCE400\BIN\WCEARMV4.BAT"
8. בשורת הפקודה של WinCE שביצעת עם WCEARMV4.BAT, עבור אל ספריית המקור של perl,
cd לתוך win32/ והפעל את "nmake -f Makefile.ce".
9. מתורגמן ARM perl (perl519.dll ו-perl.exe) יהיה במשהו כמו
"C:\perl519\src\win32\wince-arm-pocket-wce400", עם קובצי ה-DLL של XS ב
"C:\perl519\src\xlib\wince-arm-hpc-wce400\auto".
כדי להוכיח הצלחה במחשב המארח, הפעל את "dumpbin /headers
wince-arm-pocket-wce400\perl.exe" מהתיקיה win32/ וחפש את "machine (ARM)" ב-
ערכי ה-FILE HEADER VALUES ו-"subsystem (Windows CE GUI)" בערכי הכותרת האופציונליים.
ישן לבנות הוראות
סעיף זה מתאר את השלבים שיש לבצע לבניית PerlCE. ייתכן שתמצא עוד
מידע על בניית perl עבור WinCE בכתובת <http://perlce.sourceforge.net> וכמה טרום-
בנויים בינאריים.
כלים & SDK
כדי להרכיב, אתה צריך את הדברים הבאים:
· Microsoft Embedded Visual Tools
· Microsoft Visual C++
· מקורות הסליב של ריינר קוצ'ל
· מקורות הקונסולה של ריינר קוצ'ל
ניתן להוריד את קבצי המקור הדרושים בכתובת <http://perlce.sourceforge.net>
לעשות
בדרך כלל אתה רק צריך לערוך ./win32/ce-helpers/compile.bat לשקף את המערכת שלך ו
תריץ את זה.
שלח ./win32/ce-helpers/compile.bat הוא למעשה עטיפה לקרוא "nmake -f makefile.ce"
עם פרמטרים מתאימים והוא מקבל פרמטרים נוספים ומעביר אותם ל"nmake"
פקודה כטיעונים נוספים. אתה צריך לעבור את המטרה בדרך זו.
כדי להכין הפצה אתה צריך לעשות את הדברים הבאים:
· לך ל ./win32 ספריית משנה
· עריכת קובץ ./win32/ce-helpers/compile.bat
· לרוץ
compile.bat
· לרוץ
compile.bat dist
Makefile.ce יש מאקרו "CROSS_NAME", והוא משמש עוד כדי להתייחס ל-cross-
ערכת הידור. אתה יכול להקצות לו שם, אבל זה לא הכרחי, כי על ידי
ברירת המחדל היא מוקצה לאחר שם תצורת המכשיר שלך, כגון
"wince-sh3-hpc-wce211", וזה מספיק כדי להבחין בין מבנים שונים בו זמנית
זְמַן. אפשרות זו יכולה להיות שימושית לביצוע של מספר בנייה שונים באותה פלטפורמה,
נגיד, בניית הברגה. בדוגמה הבאה אנו מניחים שכל הסביבה הנדרשת
משתנים מוגדרים כראוי עבור C cross-compiler (קובץ *.bat מיוחד יכול להתאים בצורה מושלמת
למטרה זו) ושלך compile.bat יש להגדיר פרמטר "MACHINE" מתאים, למשל,
"wince-mips-pocket-wce300".
compile.bat
compile.bat dist
compile.bat CROSS_NAME=mips-wce300-thr "USE_ITHREADS=define" ^
"USE_IMP_SYS=להגדיר" "USE_MULTI=להגדיר"
compile.bat CROSS_NAME=mips-wce300-thr "USE_ITHREADS=define" ^
"USE_IMP_SYS=להגדיר" "USE_MULTI=להגדיר" dist
אם הכל ילך כשורה וללא שגיאות במהלך בנייה, תקבל שתי הפצות עצמאיות:
"wince-mips-pocket-wce300" ו-"mips-wce300-thr".
יעד "דיסט" מכין סט קבצי הפצה. היעד "zipdist" פועל כמו "dist" אבל
בנוסף דוחס קבצי הפצה לארכיון zip.
הערה: במהלך בנייה יכול להיווצר מספר (או אחד) של Config.pm עבור חוצה-
קומפילציה ("זר" Config.pm) ואלה חבויים בפנים ../xlib/$(CROSS_NAME) עם
קבצי עזר אחרים, אבל, וזה חשוב לציין, צריכים להיות לא Config.pm
עבור מיניפרל מארח. אם תקבל שגיאה ש-perl לא הצליח למצוא את Config.pm איפשהו
תהליך בנייה זה אומר שמשהו השתבש. סביר להניח ששכחת לציין א
הידור צולב בעת הפעלת miniperl.exe ל- Makefile.PL בעת בניית הרחבה עבור
קומפילציה צולבת שורת הפקודה שלך צריכה להיראות
..\miniperl.exe -I..\lib -MCross=mips-wce300-thr Makefile.PL
או רק
..\miniperl.exe -I..\lib -MCross Makefile.PL
להפנות קומפילציה צולבת שנוצרה בפעם הקודמת.
ניתן לשאול את כל השאלות הקשורות לבנייה עבור התקני WinCE
[מוגן בדוא"ל] רשימת תפוצה.
שימוש פרל on WinCE
תיאור
PerlCE מקושר כעת לחלון מסוף פשוט, כך שהוא עובד גם על לא-hpc
התקנים.
היישום הפשוט של stdio יוצר את הקבצים stdin.txt, stdout.txt ו stderr.txt, כך
אתה יכול לבחון אותם אם לקונסולה שלך יש רק מספר מוגבל של קולים.
כאשר קוד היציאה אינו אפס, מופיעה תיבת הודעה, אחרת הקונסולה נסגרת, אז אתה
ייתכן שיהיה עליך לתפוס יציאה עם סטטוס 0 בתוכנית שלך כדי לראות פלט כלשהו.
stdout/stderr היכנס כעת לקבצים /perl-stdout.txt ו /perl-stderr.txt.
PerlIDE שימושי להתמודדות עם perlce.
מגבלות
לא מזלג(), צינור(), popen () וכו '
הסביבה
יש לאחסן את כל וריאציות הסביבה ב-HKLM\Environment כמחרוזות. הם נקראים ב
תהליך אתחול.
PERL5LIB
נתיב perl lib רגיל (רשימה למחצה).
נתיב
חצי רשימה עבור קובצי הפעלה.
TMP - Tempdir.
UNIXROOTPATH
- שורש לגישה לכמה קבצים מיוחדים, כלומר. / dev / null, / וכו '/ שירותים.
שורות/קולות
- שורות/קולות לקונסולה.
עמוד הבית
- ספריית בית.
CONSOLEFONTSIZE
- גודל עבור גופן קונסולה.
אתה יכול להגדיר אותם עם cereg.exe, עורך רישום (מרוחק) או דרך PerlIDE.
הרשמה
כדי להתחיל את perl על ידי לחיצה על קובץ מקור של perl, עליך לבצע את הערכים המתאימים ב-
HKCR (ראה ce-helpers/wince-reg.bat). cereg.exe (שיש להפעיל במחשב שולחני
עם ActiveSync) דווח שלא עובד במכשירים מסוימים. אתה צריך ליצור את הרישום
ערכים ביד באמצעות עורך רישום.
XS
שיטות ה-Win32 הבאות מובנות:
newXS("Win32::GetCwd", w32_GetCwd, file);
newXS("Win32::SetCwd", w32_SetCwd, file);
newXS("Win32::GetTickCount", w32_GetTickCount, file);
newXS("Win32::GetOSVersion", w32_GetOSVersion, file);
newXS("Win32::IsWinNT", w32_IsWinNT, file);
newXS("Win32::IsWin95", w32_IsWin95, file);
newXS("Win32::IsWinCE", w32_IsWinCE, file);
newXS("Win32::CopyFile", w32_CopyFile, file);
newXS("Win32::Sleep", w32_Sleep, file);
newXS("Win32::MessageBox", w32_MessageBox, file);
newXS("Win32::GetPowerStatus", w32_GetPowerStatus, file);
newXS("Win32::GetOemInfo", w32_GetOemInfo, file);
newXS("Win32::ShellEx", w32_ShellEx, file);
באגים
פתיחת קבצים לקריאה-כתיבה אינה נתמכת כרגע אם הם משתמשים ב-stdio (perl רגיל
ידיות קבצים).
אם אתה מוצא באגים או אם זה לא עובד בכלל במכשיר שלך, שלח דואר לכתובת
לְהַלָן. אנא דווח על הפרטים של המכשיר שלך (מעבד, ceversion, סוג מכשיר
(hpc/palm/pocket)) ותאריך הקבצים שהורדו.
התקנה
כרגע הוראות ההתקנה נמצאות ב-<http://perlce.sourceforge.net/>.
לאחר שתהליכי ההתקנה והבדיקה יתייצבו, המידע יהיה מדויק יותר.
תודות
היציאה עבור Win32 שימשה כהפניה.
הִיסטוֹרִיָה of WinCE נמל
5.6.0
יציאה ראשונית של perl ל-WinCE. זה בוצע בספרייה נפרדת בשם להתכווץ.
יציאה זו התבססה על תוכן של ./win32 במדריך. מיניפרל לא נבנה, משתמש
חייב להיות HOST perl ולערוך כראוי makefile.ce לשקף זאת.
5.8.0
נמל הכווץ נשמר באותה צורה ./כווץ מדריך, וכן wince/Makefile.ce היה רגיל
הפעל מהדר מקורי כדי ליצור מיניפרל HOST, אשר לאחר מכן מקל על קומפילציה צולבת
תהליך. נוספה תמיכת בנייה בהרחבה.
5.9.4
שני מדריכים ./win32 ו ./כווץ מוזגו, אז תהליך הבנייה של perlce נכנס
./win32 במדריך.
מחברים
ריינר קוצ'ל <[מוגן בדוא"ל]>
סיפק נמל ראשוני של פרל, שנראה כעבודה חיונית ביותר, כפי שהיה א
פריצת דרך בהעברת פרל בכלל. תודה רבה והתחייבויות לריינר!
ואדים קונובלוב
עשה תמיכה נוספת ביציאת WinCE.
דניאל דראגן
עדכן את תהליך הבנייה במהלך מסלול הפיתוח של 5.19.
השתמש ב-perlce באינטרנט באמצעות שירותי onworks.net