Я пытаюсь скомпилировать программу, используя самокомпилированный GCC-4.7.1 в Mac OS 10.8.2. Программа использует 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).