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 = input
Binary 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-fortran
replacing
<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 folder
Compiling 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-w64
Cross-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-win32
cd julia-win32
echo override XC_HOST = i686-w64-mingw32 >> Make.user
make
make 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 محتمل.