The executable file has been generated, but it cannot be run.
"error while loading shared libraries: libmkl_intel_lp64.so.1: cannot open shared object file"
- Optimization Solution:
- Before calling the
qbics-linux-cpu
executable, source the intel_oneapi'ssetvars.sh
file again. - Directly add source
<path>/setvars.sh
to the environment variables (recommended, but some servers may encounter issues with file transfers after adding to the environment variables, so use with caution).
Locate and replace the path of intel_oneapi.
In different servers, the location of the Intel compiler varies. Users need to find the absolute path where the Intel compiler is installed.
- Optimization Solution:
- Confirm whether the Intel compiler is installed by using the which icc command. If installed, skip directly to Step 3.
-
Enter the command
module avail
to search for the Intel module, and executemodule load <intel module>
to load it, then save it to the environment variables. -
Save the path of the Intel compiler to
/lustre/software/intel_oneapi
(note that the path obtained afterwhich icc
is not the direct path we use; we need to find the path containing thesetvars.sh
file based on this path). -
Replace the path of the Intel compiler in the
build.sh
file AND the~/qbics-src/Makefile-linux-cpu
file.
setvars.sh has already been executed and does not need to be run again.
WARNING: setvars.sh
has already been run. Skipping re-execution.
- Optimization Solution:
If you wish to re-execute the source ~/setvars.sh
script, you can add the --force
keyword
after the source <path>/setvars.sh
in the build.sh
file to override this behavior.
An error message appears when compiling Qbics.
No rule to make target '/opt/intel/oneapi/mkl/2021.4.0/include/mkl.h', needed by 'build/linux-cpu/obj/basis/BasisSetData.o'
- Optimization Solution:
Execute the command make -f Makefile-linux-cpu
directly in the qbics-src
folder instead of compiling Qbics through the build.sh
script.