我一直在尝试使用gcc编译一个使用OpenMP的程序--version 4.9.4
> g++ -std=c++11 -o a.exe -fopenmp ./file.cpp > ./a.exe
./ a.exe:/usr/lib64/libgomp.so.1:找不到版本`GOMP_4.0' (./a.exe要求)
我有一个名为“/usr/lib64/libgomp.so.1”的文件,我该如何解决?
答案 0 :(得分:5)
由于您有多个GCC编译器安装(4.3和4.9),因此您可能会因为使用GCC 4.9(支持OpenMP 4.0)进行编译而出现问题,但在运行时,OS加载程序使用GCC 4.3库(不支持OpenMP 4.0)。
有一些替代方法可以避免这个问题:
-static
静态编译二进制文件。使O / S搜索相应的库而不是旧库。您可以使用命令
find / name -name libgomp.so.1
列出系统中可用的libgomp库,然后将存储它的目录添加到LD_LIBRARY_PATH
环境变量中。
-Wl,-rpath -Wl,<dir>/lib
(或lib64而不是lib,如果适用的话)<dir>
引用第2点的目录。)答案 1 :(得分:1)
从这里安装正确的新库http://packages.ubuntu.com/search?keywords=libgomp1帮助了我类似的情况。