我在以下$HOME/tpl/intel
安装了intel编译器。当我编译一个简单的hello_omp.cpp
并启用了openMP
#include <omp.h>
#include <iostream>
int main ()
{
#pragma omp parallel
{
std::cout << "Hello World" << std::endl;
}
return 0;
}
我用~/tpl/intel/bin/icpc -O3 -qopenmp hello_omp.cpp
编译,但是当我运行时,我收到以下错误:
./a.out: error while loading shared libraries: libiomp5.so: cannot open shared object file: No such file or directory
。
我想在make过程中明确地链接intel编译器和相应的库,而不使用LD_LIBRARY_PATH
?
答案 0 :(得分:2)
您有两个简单的解决方案可以解决您的问题:
datetime.strptime(datetime.today().strftime('%Y/%m/%d ') + '09:15', '%Y/%m/%d %H:%M')
~/tpl/intel/bin/icpc -O3 -qopenmp -static_intel hello_omp.cpp
将动态库的搜索路径添加到二进制文件中:-rpath
~/tpl/intel/bin/icpc -O3 -qopenmp -Wl,-rpath=$HOME/tpl/intel/lib/intel64 hello_omp.cpp
将选项传送给链接器
我想这比你提出的第一个解决方案更像你所说的,所以我让你设计一下比较优缺点。答案 1 :(得分:0)
英特尔编译器在bin目录中发布compilervars.sh脚本,当源文件将设置适当的env变量,如LD_LIBRARY_PATH,LIBRARY_PATH和PATH,其中包含托管OpenMP运行时库和其他编译器特定库(如libsvml)的正确目录(短矢量数学库) )或libimf(更优化的libm版本)。