没有找到OpenMP + GOMP_4.0



我一直在尝试编译一个在suse上使用OpenMP的程序,gcc——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/libgome .so"的文件。"我该怎么修呢?"

由于您有多个GCC编译器安装(4.3和4.9),您的问题很可能出现,因为您使用GCC 4.9(支持OpenMP 4.0)进行编译,但在运行时操作系统加载器使用GCC 4.3库(不支持OpenMP 4.0)。

有一些替代方法可以避免这个问题:

    在链接时使用-static静态编译二进制文件
  1. 使O/S搜索合适的库而不是旧的库。您可以使用

    命令
    find / name -name libgomp.so.1
    

    列出系统中可用的libgomp库,然后将存储libgomp库的目录添加到LD_LIBRARY_PATH环境变量中。

  2. 与2)相比,您还可以告诉链接器生成一个二进制文件,并让它知道除了LD_LIBRARY_PATH指向的位置之外,在哪里可以找到其他共享库。你也可以使用gcc…-Wl,-rpath -Wl,<dir>/lib(或lib64而不是lib,如果适用的话),其中<dir>指的是点2的目录。

从这里安装正确的新库http://packages.ubuntu.com/search?keywords=libgomp1帮助我在类似的情况下。

相关内容

  • 没有找到相关文章

最新更新