将OpenMP指定为GCC
|
对于OpenMP,当我的代码使用其API中的函数(例如omp_get_thread_num())而不使用其指令(例如那些#pragma omp ...)时,
为什么直接将libgomp.a指定为
gcc而不是使用-fopenmp
不起作用,例如
gcc hello.c /usr/lib/gcc/i686-linux-gnu/4.4/libgomp.a -o hello
更新:我刚刚发现链接到libgomp.a不起作用,但是链接到libgomp.so可以工作。这是否意味着OpenMP无法静态链接?
为什么-fopenmp仅在没有
指定库文件
gcc hello.c -fopenmp -o hello
更新:换句话说,当使用-fopenmp时,为什么不需要显式链接到libgomp.so?
为什么还会编译:
gcc hello.c -L/usr/lib/gcc/i686-linux-gnu/4.4/ -lgomp -o hello
这会忽略OpenMP指令吗
在代码中是否有?
谢谢并恭祝安康!
没有找到相关结果
已邀请:
1 个回复
抵浮细
控制,后者由链接到OpenMP库控制。 (已更新以包含注释)尝试使用
和
选项静态链接OpenMP。因为这意味着
,所以除非您还指定
的位置,否则以下命令将无法正确编译。
(已更新以包含注释)我想以下命令正在正确编译,因为OpenMP库已经在您的库路径中,并且系统的动态链接器已自动与
链接。
以下命令可能已正确编译,因为它已链接到OpenMP的共享库(the9ѭ)。请注意,未使用“ 5”选项。
如果未指定
选项,则应忽略OpenMP指令。