2011-01-09 62 views
0

我试图使用CMake 2.8和gcc 4.6(来自macports)在OS X中创建一个项目作为共享库。当CMake的到达我的图书馆链接到一个名为.dylib点,我从GCC出现以下错误:Mac OS X上的CMake/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

您可以重新构建cmake来修复这个问题 - 它显然是为X ++/Darwin版本的g ++(特殊版本4.2)生成代码,该代码接受许多非标准链接器标记。

只需更改Modules/Platform/Darwin * .cmake文件并重新构建。罪魁祸首是这样的:

SET(CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first -headerpad_max_install_names") 
+0

不幸的是,我不得不使用gcc 4.6,因为我需要支持最新的C++ 0x功能。 – rcv 2011-01-10 00:07:44