AnyMath 文档

Linux操作系统

*构建Julia需要GCC版本4.7或更高版本。 *要使用不在系统库搜索路径中的外部共享库,请设置 USE_SYSTEM_XXX=1LDFLAGS=-Wl,-rpath,/path/to/dir/contains/libXXX.so做吧。用户. *而不是设置 [医]LDFLAGS,将库目录放入环境变量中 LD_LIBRARY_PATH (在编译和运行时)也可以工作。 * 使用系统_* 标志应谨慎使用。 这些仅用于故障排除,移植和打包,其中包维护者与Julia开发人员密切合作,以确保Julia正确构建。 生产用例应使用官方提供的二进制文件。 使用这些标志所引起的问题一般不被接受。 *请参阅 外部依赖

架构定制

Julia可以通过配置 拱门 A中的Makefile变量 做吧。用户 档案。 请参阅 做吧。公司 对于其他自定义选项,例如 三月JULIA_CPU_目标.

例如,要为奔腾4构建,请设置 三月=奔腾4 并安装必要的系统库进行链接。 在Ubuntu上,这些可能包括lib32gfortran-6-dev,lib32gcc1和lib32stdc++6,除其他外。

您还可以设置 三月=本地做吧。用户 为当前机器CPU定制的最大性能构建。

Linux构建故障排除

问题 可能的解决方案

OpenBLAS构建失败

设置以下构建选项之一 做吧。用户 并再次构建:<ul><li> OPENBLAS_TARGET_ARCH=巴塞罗那 (AMD Cpu)或 OPENBLAS_TARGET_ARCH=NEHALEM (Intel Cpu)<ul>集 OPENBLAS_DYNAMIC_ARCH=0 禁用在一个二进制文件中编译多个体系结构。</ul></li><li> OPENBLAS_NO_AVX2=1 禁用AVX2指令,允许OpenBLAS编译 OPENBLAS_DYNAMIC_ARCH=1 使用旧版本的binutils</li><li> USE_SYSTEM_BLAS=1 使用所提供的系统 利布拉斯 <ul><li>套装 LIBBLAS=-lopenblasLIBBLASNAME=libopenblas 在安装多个BLAS版本时强制使用提供的系统OpenBLAS。 </li></ul></li></ul><p>如果你得到一个错误,看起来像 ../内核/x86_64/dgemm_kernel_4x4_haswell。S:1709:错误:没有这样的指令: vpermpd〇0xb1,%ymm0,%ymm0',那么你需要设置 OPENBLAS_DYNAMIC_ARCH=0OPENBLAS_NO_AVX2=1,或者你需要一个新版本的 binutils的(2.18或更新)。 (https://github.com/JuliaLang/julia/issues/7653[Issue#7653])</p><p>如果链接器找不到gfortran,gfortran 你会得到一个错误,比如 julia/usr/bin/x86_64-linux-gnu-ld:找不到-lgfortran,检查路径与 gfortran-print-file-name=libgfortran.so 并使用输出导出类似于此的内容: 导出LDFLAGS=-L/usr/lib/gcc/x86_64-linux-gnu/8/`. 见https://github.com/JuliaLang/julia/issues/6150#issuecomment-37546803[问题#6150]。</p>

非法指令错误

检查您的CPU是否支持AVX,而您的操作系统不支持AVX(例如,通过虚拟化,如https://github.com/JuliaLang/julia/issues/3263[本期])。