CMake / GCC "нераспознанная опция" в Mac OS X - PullRequest
0 голосов
/ 10 января 2011

Я пытаюсь создать проект как разделяемую библиотеку в OS X, используя CMake 2.8 и gcc 4.6 (из macports). Когда CMake доходит до точки соединения моей библиотеки в .dylib, я получаю следующую ошибку от gcc:

g++   -dynamiclib -headerpad_max_install_names -o libmycoollibrary.dylib etc...
g++: error: unrecognized option '-h'
make[2]: *** [libnrtCore.dylib] Error 1
make[1]: *** [CMakeFiles/nrtCore.dir/all] Error 2
make: *** [all] Error 2

Это -headerpad_max_install_names, кажется, проблема, но я никогда не видел это раньше. Кто-нибудь знает, как заставить CMake не включать эту опцию или заставить GCC принять эту опцию?

1 Ответ

1 голос
/ 10 января 2011

Вы можете пересобрать cmake, чтобы это исправить - он явно генерирует код для версии g ++ для XCode / Darwin (специальная версия 4.2), которая принимает несколько нестандартных флагов компоновщика.

Просто измените файлы Modules / Platform / Darwin * .cmake и пересоберите. Линии виновника выглядят так:

SET(CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first -headerpad_max_install_names") 
...