我正在尝试使用CMake 2.8和gcc 4.6(来自macports)在OS X中创建一个项目作为共享库。当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接受这个选项?
答案 0 :(得分:1)
你可以重新构建cmake来解决这个问题 - 它显然是为g ++的XCode / Darwin版本(4.2的特殊版本)生成代码,它接受许多非标准的链接器标记。
只需更改Modules / Platform / Darwin * .cmake文件并重新构建即可。罪魁祸首看起来像这样:
SET(CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first -headerpad_max_install_names")