Windows
هذا الملف يصف كيفية تثبيت أو بناء واستخدام جوليا على ويندوز.
للحصول على معلومات أكثر عمومية حول جوليا، يرجى الاطلاع على main README أو documentation.
General Information for Windows
نوصي بشدة بتشغيل جوليا باستخدام تطبيق طرفية حديث، وبشكل خاص Windows Terminal، الذي يمكن تثبيته من Microsoft Store.
Line endings
تستخدم جوليا الملفات في وضع ثنائي فقط. على عكس العديد من برامج ويندوز الأخرى، إذا كتبت \n إلى ملف، ستحصل على \n في الملف، وليس نمط بت آخر. هذا يتطابق مع السلوك الذي تظهره أنظمة التشغيل الأخرى. إذا كنت قد قمت بتثبيت Git لنظام ويندوز، يُقترح، ولكن ليس مطلوبًا، أن تقوم بتكوين Git الخاص بنظامك لاستخدام نفس الاتفاقية:
git config --global core.eol lf
git config --global core.autocrlf inputأو قم بتحرير %USERPROFILE%\.gitconfig وأضف/عدل الأسطر:
[core]
eol = lf
autocrlf = inputBinary distribution
للحصول على ملاحظات تثبيت التوزيع الثنائي على نظام Windows، يرجى الاطلاع على التعليمات على https://julialang.org/downloads/platform/#windows.
Source distribution
Cygwin-to-MinGW cross-compiling
الطريقة الموصى بها لتجميع جوليا من المصدر على ويندوز هي عن طريق التجميع المتقاطع من Cygwin، باستخدام إصدارات من مجمعات MinGW-w64 المتاحة من خلال مدير حزم Cygwin.
قم بتنزيل وتشغيل إعداد Cygwin لـ 32 bit أو 64 bit. لاحظ أنه يمكنك تجميع إما Julia 32 بت أو 64 بت من Cygwin 32 بت أو 64 بت. يحتوي Cygwin 64 بت على مجموعة أصغر قليلاً ولكن غالبًا ما تكون أكثر تحديثًا من الحزم.
متقدم: يمكنك تخطي الخطوات 2-4 عن طريق التشغيل:
sh setup-x86_64.exe -s <url> -q -P cmake,gcc-g++,git,make,patch,curl,m4,python3,p7zip,mingw64-i686-gcc-g++,mingw64-i686-gcc-fortran,mingw64-x86_64-gcc-g++,mingw64-x86_64-gcc-fortranreplacing
<url>with a site from https://cygwin.com/mirrors.html or run setup manually first and select a mirror.اختر موقع التثبيت ومرآة للتنزيل منها.
في خطوة اختيار الحزم، اختر ما يلي:
- من فئة Devel:
cmake,gcc-g++,git,make,patch - من فئة Net:
curl - من فئة المترجمات (أو بايثون):
m4،python3 - من فئة الأرشيف:
p7zip - لـ 32 بت جوليا، وأيضًا من فئة Devel:
mingw64-i686-gcc-g++وmingw64-i686-gcc-fortran - لـ 64 بت جوليا، وأيضًا من فئة Devel:
mingw64-x86_64-gcc-g++وmingw64-x86_64-gcc-fortran
- من فئة Devel:
اسمح لتثبيت Cygwin بالانتهاء، ثم ابدأ من الاختصار المثبت 'Cygwin Terminal'، أو 'Cygwin64 Terminal'، على التوالي.
بناء جوليا ومواردها من المصدر:
احصل على مصادر جوليا
sh git clone https://github.com/JuliaLang/julia.git cd juliaنصيحة: إذا تلقيت
error: cannot fork() for fetch-pack: Resource temporarily unavailableمن git، أضفalias git="env PATH=/usr/bin git"إلى~/.bashrcوأعد تشغيل Cygwin.قم بتعيين متغير
XC_HOSTفيMake.userللإشارة إلى تجميع MinGW-w64 المتقاطع```sh echo 'XC_HOST = i686-w64-mingw32' > Make.user # for 32 bit Julia
or
echo 'XCHOST = x8664-w64-mingw32' > Make.user # for 64 bit Julia ```
ابدأ البناء
sh make -j 4 # Adjust the number of threads (4) to match your build environment. make -j 4 debug # This builds julia-debug.exe
تشغيل جوليا باستخدام ملفات تنفيذ جوليا مباشرة
sh usr/bin/julia.exe usr/bin/julia-debug.exe
make O=julia-win32 configure
make O=julia-win64 configure
echo 'XC_HOST = i686-w64-mingw32' > julia-win32/Make.user
echo 'XC_HOST = x86_64-w64-mingw32' > julia-win64/Make.user
echo 'ifeq ($(BUILDROOT),$(JULIAHOME))
$(error "in-tree build disabled")
endif' >> Make.user
make -C julia-win32 # build for Windows x86 in julia-win32 folder
make -C julia-win64 # build for Windows x86-64 in julia-win64 folderCompiling with MinGW/MSYS2
MSYS2 هو بيئة توزيع وبناء البرمجيات لنظام ويندوز.
ملاحظة: يتطلب MSYS2 نظام ويندوز 64 بت 7 أو أحدث.
تثبيت وتكوين MSYS2.
قم بتنزيل وتشغيل أحدث مثبت لتوزيعة 64-bit. سيكون اسم المثبت شيئًا مثل
msys2-x86_64-yyyymmdd.exe.افتح قشرة MSYS2. قم بتحديث قاعدة بيانات الحزم والحزم الأساسية:
pacman -Syuاخرج وأعد تشغيل MSYS2. قم بتحديث بقية حزم القاعدة:
pacman -Syuثم قم بتثبيت الأدوات المطلوبة لبناء جوليا:
pacman -S cmake diffutils git m4 make patch tar p7zip curl pythonلتثبيت إصدار x86_64 من جوليا 64 بت:
pacman -S mingw-w64-x86_64-gccلتثبيت إصدار i686 من جوليا 32 بت:
pacman -S mingw-w64-i686-gccتمت عملية تكوين MSYS2 بنجاح. الآن
اخرجمن قشرة MSYS2.
قم ببناء جوليا ومواردها باستخدام الموارد المسبقة البناء.
افتح ملفًا جديدًا MINGW64/MINGW32 shell. حاليًا لا يمكننا استخدام كل من mingw32 و mingw64، لذا إذا كنت ترغب في بناء إصدارات x86_64 و i686، ستحتاج إلى بنائها في كل بيئة على حدة.
استنساخ مصادر جوليا:
git clone https://github.com/JuliaLang/julia.git cd juliaابدأ البناء
make -j$(nproc)
make O=julia-mingw-w64 configure
echo 'ifeq ($(BUILDROOT),$(JULIAHOME))
$(error "in-tree build disabled")
endif' >> Make.user
make -C julia-mingw-w64Cross-compiling from Unix (Linux/Mac/WSL)
يمكنك أيضًا استخدام مجمعات MinGW-w64 المتقاطعة لبناء إصدار Windows من Julia من Linux أو Mac أو Windows Subsystem for Linux (WSL).
أولاً، ستحتاج إلى التأكد من أن نظامك يحتوي على المتطلبات اللازمة. نحن بحاجة إلى wine (>=1.7.5)، ومترجم نظام، وبعض أدوات التحميل. ملاحظة: قد يتداخل تثبيت Cygwin مع هذه الطريقة إذا كنت تستخدم WSL.
على أوبونتو (على أنظمة لينكس الأخرى، من المحتمل أن تكون أسماء التبعيات مشابهة):
apt-get install wine-stable gcc wget p7zip-full winbind mingw-w64 gfortran-mingw-w64
dpkg --add-architecture i386 && apt-get update && apt-get install wine32 # add sudo to each if needed
# switch all of the following to their "-posix" variants (interactively):
for pkg in i686-w64-mingw32-g++ i686-w64-mingw32-gcc i686-w64-mingw32-gfortran x86_64-w64-mingw32-g++ x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gfortran; do
sudo update-alternatives --config $pkg
doneعلى ماك: قم بتثبيت XCode، وأدوات سطر أوامر XCode، وX11 (الآن XQuartz)، وMacPorts أو Homebrew. ثم قم بتشغيل port install wine wget mingw-w64، أو brew install wine wget mingw-w64، حسب الاقتضاء.
ثم قم بتشغيل البناء:
git clone https://github.com/JuliaLang/julia.git julia-win32cd julia-win32echo override XC_HOST = i686-w64-mingw32 >> Make.usermakemake win-extras(ضروري قبل تشغيلmake binary-dist)make binary-distثمmake exeلإنشاء مثبت Windows.- نقل مثبت
julia-*.exeإلى الجهاز المستهدف
إذا كنت تبني لنظام Windows 64-bit، فإن الخطوات هي نفسها إلى حد كبير. فقط استبدل i686 في XC_HOST بـ x86_64. (ملاحظة: على نظام Mac، يعمل wine فقط في وضع 32-bit).
Debugging a cross-compiled build under wine
الطريقة الأكثر فعالية لتصحيح نسخة مترجمة عبر الترجمة المتقاطعة من جوليا على مضيف الترجمة المتقاطعة هي تثبيت نسخة ويندوز من GDB وتشغيلها تحت واين كما هو معتاد. الحزم المسبقة البناء المتاحة as part of the MSYS2 project معروفة بأنها تعمل. بخلاف حزمة GDB، قد تحتاج أيضًا إلى حزم بايثون وترمكاب. أخيرًا، قد لا يعمل موجه GDB عند إطلاقه من سطر الأوامر. يمكن تجاوز ذلك عن طريق إضافة wineconsole إلى استدعاء GDB العادي.
After compiling
إن تجميع باستخدام أحد الخيارات أعلاه ينشئ بناءً أساسيًا لجوليا، ولكن ليس بعض المكونات الإضافية التي يتم تضمينها إذا قمت بتشغيل مثبت جوليا الكامل. إذا كنت بحاجة إلى هذه المكونات، فإن أسهل طريقة للحصول عليها هي بناء المثبت بنفسك باستخدام make win-extras متبوعًا بـ make binary-dist و make exe. ثم قم بتشغيل المثبت الناتج.
Windows Build Debugging
GDB hangs with Cygwin mintty
- قم بتشغيل GDB تحت وحدة التحكم في Windows (cmd) بدلاً من ذلك. GDB may not function properly تحت mintty مع تطبيقات غير Cygwin. يمكنك استخدام
cmd /c startلبدء وحدة التحكم في Windows من mintty إذا لزم الأمر.
GDB not attaching to the right process
- استخدم PID من مدير مهام ويندوز أو
WINPIDمن أمرpsبدلاً من PID من أدوات سطر الأوامر على نمط يونكس (مثلpgrep). قد تحتاج إلى إضافة عمود PID إذا لم يكن معروضًا بشكل افتراضي في مدير مهام ويندوز.
GDB not showing the right backtrace
- عند الاتصال بعملية جوليا، قد لا يكون GDB متصلاً بالخيط الصحيح. استخدم أمر
info threadsلعرض جميع الخيوط وthread <threadno>للتبديل بين الخيوط. - تأكد من استخدام إصدار 32 بت من GDB لتصحيح بناء 32 بت من جوليا، أو إصدار 64 بت من GDB لتصحيح بناء 64 بت من جوليا.
Build process is slow/eats memory/hangs my computer
تعطيل خدمات Windows Superfetch و Program Compatibility Assistant، حيث يُعرف أنها تحتوي على spurious interactions مع MinGW/Cygwin.
كما هو مذكور في الرابط أعلاه: يمكن التحقيق في استخدام الذاكرة المفرط بواسطة
svchostبشكل خاص في إدارة المهام من خلال النقر على عمليةsvchost.exeذات الذاكرة العالية واختيارانتقل إلى الخدمات. قم بتعطيل الخدمات الفرعية واحدة تلو الأخرى حتى يتم العثور على الجاني.احذر من BLODA. الأداة vmmap لا غنى عنها لتحديد مثل هذه الصراعات البرمجية. استخدم vmmap لفحص قائمة DLLs المحملة لـ bash أو mintty أو أي عملية مستمرة أخرى تستخدم لدفع البناء. بشكل أساسي، أي DLL خارج دليل نظام Windows هو BLODA محتمل.