【发布时间】:2013-02-02 12:27:34
【问题描述】:
我在我的 C++ 代码中使用 OpenMP。
libgomp.so.1 存在于我的 lib 文件夹中。我还将其路径添加到 LD_LIBRARY_PATH
仍然在运行时我收到错误消息:libgomp.so.1: 无法打开共享对象文件
在编译时,我使用 -fopenmp 选项编译我的代码。
知道什么会导致问题吗?
谢谢
【问题讨论】:
-
运行
ldd your_application_name时输出什么? -
我实际上是为一个不是 x86_64 的架构交叉编译它。但是还有另一个版本的 g++ 并且在另一个系统中一切正常。所以,我以前做过。只是不记得我是如何解决问题的!会不会和64bit 32bit有关?
-
我需要在编译时添加类似 -lgomp 的东西吗?
-
我认为
-fopenmp也会自动处理链接 libgomp。请参阅此问题的公认答案:stackoverflow.com/questions/6351961/specify-openmp-to-gcc -
嗯,那(模拟器,交叉编译,...)是很多重要的信息,你没有包括在你的问题中。您的模拟器是否没有提供带有外壳等的完整系统?作为第一个修复,我会尝试使用
-fopenmp -static进行编译,如有必要,直接指定librt.a和libgomp.a的完整路径(同样,请参阅我发布的链接)。
标签: c++ compiler-construction path shared-libraries openmp