Linux
- يتطلب بناء جوليا إصدار GCC 4.7 أو أحدث.
- لاستخدام المكتبات المشتركة الخارجية التي ليست في مسار بحث مكتبات النظام، قم بتعيين
USE_SYSTEM_XXX=1
وLDFLAGS=-Wl,-rpath,/path/to/dir/contains/libXXX.so
فيMake.user
. - بدلاً من تعيين
LDFLAGS
، فإن وضع دليل المكتبة في متغير البيئةLD_LIBRARY_PATH
(في وقت الترجمة والتشغيل) يعمل أيضًا. - يجب استخدام علامات
USE_SYSTEM_*
بحذر. هذه مخصصة فقط لاستكشاف الأخطاء وإصلاحها، ونقل البرمجيات، والتعبئة، حيث يعمل مسؤولو الحزم عن كثب مع مطوري جوليا للتأكد من أن جوليا تم بناؤها بشكل صحيح. يجب أن تستخدم حالات الاستخدام في الإنتاج الثنائيات المقدمة رسميًا. لن يتم قبول المشكلات الناشئة عن استخدام هذه العلامات عمومًا. - انظر أيضًا إلى external dependencies.
Architecture Customization
يمكن بناء جوليا لعمارة غير عامة عن طريق تكوين متغير ARCH
في ملف Make.user
. راجع القسم المناسب من Make.inc
للحصول على خيارات تخصيص إضافية، مثل MARCH
و JULIA_CPU_TARGET
.
على سبيل المثال، لبناء لـ Pentium 4، قم بتعيين MARCH=pentium4
وثبت المكتبات النظامية اللازمة للربط. على أوبونتو، قد تشمل هذه lib32gfortran-6-dev و lib32gcc1 و lib32stdc++6، من بين أمور أخرى.
يمكنك أيضًا تعيين MARCH=native
في Make.user
للحصول على بناء عالي الأداء مخصص لوحدة المعالجة المركزية لجهازك الحالي.
Linux Build Troubleshooting
Problem | Possible Solution |
---|---|
OpenBLAS build failure | Set one of the following build options in Make.user and build again: <ul><li> OPENBLAS_TARGET_ARCH=BARCELONA (AMD CPUs) or OPENBLAS_TARGET_ARCH=NEHALEM (Intel CPUs)<ul>Set OPENBLAS_DYNAMIC_ARCH = 0 to disable compiling multiple architectures in a single binary.</ul></li><li> OPENBLAS_NO_AVX2 = 1 disables AVX2 instructions, allowing OpenBLAS to compile with OPENBLAS_DYNAMIC_ARCH = 1 using old versions of binutils </li><li> USE_SYSTEM_BLAS=1 uses the system provided libblas <ul><li>Set LIBBLAS=-lopenblas and LIBBLASNAME=libopenblas to force the use of the system provided OpenBLAS when multiple BLAS versions are installed. </li></ul></li></ul><p> If you get an error that looks like ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1709: Error: no such instruction: `vpermpd $ 0xb1,%ymm0,%ymm0' , then you need to set OPENBLAS_DYNAMIC_ARCH = 0 or OPENBLAS_NO_AVX2 = 1 , or you need a newer version of binutils (2.18 or newer). (Issue #7653)</p><p> If the linker cannot find gfortran and you get an error like julia /usr/bin/x86_64-linux-gnu-ld: cannot find -lgfortran , check the path with gfortran -print-file-name=libgfortran.so and use the output to export something similar to this: export LDFLAGS=-L/usr/lib/gcc/x86_64-linux-gnu/8/ . See Issue #6150.</p> |
Illegal Instruction error | Check if your CPU supports AVX while your OS does not (e.g. through virtualization, as described in this issue). |