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.
All errors related to third-party libraries.
Generally, issues concerning third-party libraries can be resolved through the following two methods.
- Optimization Solution:
-
Method One:
- Navigate to the
qbics-1230
directory. -
Run the command
./build.sh clean
to remove files generated by third-party libraries and QBiCS compilation. - Execute
./build.sh
again to rebuild the project.
- Navigate to the
-
Method Two (Verify File Names):
-
Confirm whether the
mkl
library, after compilation, results in alib
orlib64
folder. -
Adjust the
library
section in theMakefile-linux-cpu
accordingly to match the actual folder name.
-
Confirm whether the