- GCC version 4.7 or later is required to build Julia.
- To use external shared libraries not in the system library search path, set
USE_SYSTEM_XXX=1
andLDFLAGS=-Wl,-rpath,/path/to/dir/contains/libXXX.so
inMake.user
. - Instead of setting
LDFLAGS
, putting the library directory into the environment variableLD_LIBRARY_PATH
(at both compile and run time) also works. - The
USE_SYSTEM_*
flags should be used with caution. These are meant only for troubleshooting, porting, and packaging, where package maintainers work closely with the Julia developers to make sure that Julia is built correctly. Production use cases should use the officially provided binaries. Issues arising from the use of these flags will generally not be accepted. - See also the external dependencies.
Julia can be built for a non-generic architecture by configuring the ARCH
Makefile variable in a Make.user
file. See the appropriate section of Make.inc
for additional customization options, such as MARCH
and [JULIA_CPU_TARGET
](@ref JULIA_CPU_TARGET).
For example, to build for Pentium 4, set MARCH=pentium4
and install the necessary system libraries for linking. On Ubuntu, these may include lib32gfortran-6-dev, lib32gcc1, and lib32stdc++6, among others.
You can also set MARCH=native
in Make.user
for a maximum-performance build customized for the current machine CPU.
Problem | Possible Solution |
---|---|
OpenBLAS build failure | Set one of the following build options in Make.user and build again:
If you get an error that looks like If the linker cannot find |
Illegal Instruction error | Check if your CPU supports AVX while your OS does not (e.g. through virtualization, as described in this issue). |