我正在尝试在 Mac OS 10.8.2 上使用自编译的 GCC-4.7.1 编译程序。程序使用openMP,编译成功;但是,当我尝试运行程序时,动态链接器会抱怨
dyld: lazy symbol binding failed: Symbol not found: ___emutls_get_address
Referenced from: /usr/local/gcc-4.7.1/lib/libgomp.1.dylib
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: ___emutls_get_address
Referenced from: /usr/local/gcc-4.7.1/lib/libgomp.1.dylib
Expected in: /usr/lib/libSystem.B.dylib
这个问题经常出现在使用 -fopenmp 编译的任何程序中,包括 MWE
#include <stdio.h>
int main() {
#pragma omp parallel
printf("Hallo!\n");
return 0;
}
请注意,什么是“___emutls_get_address”符号中建议的解决方案?,即-lgcc_eh
在链接阶段添加,不起作用(我仍然收到相同的 dyld 错误消息)。