Mac OS X上的CMake / GCC“无法识别的选项”

时间:2011-01-09 23:26:58

标签: macos gcc cmake

我正在尝试使用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接受这个选项?

1 个答案:

答案 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")