2011-01-09 20 views
0

私は、Macake 2.8からgake 4.6(macportsから)を使ってOS Xで共有ライブラリとしてプロジェクトを作成しようとしています。 CMakeのはは.dylibに私のライブラリをリンクのポイントになると、私はGCCから次のエラーを取得する:CMake/GCC "unrecognized option" Mac OS Xで

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を再ビルドすることができます。非標準リンカフラグをいくつか受け入れるg ++のXCode/Darwinバージョン(4.2の特別なバージョン)用のコードを生成しているようです。

モジュール/プラットフォーム/ Darwin * .cmakeファイルを変更して再ビルドしてください。犯人行は次のようになります:

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

残念ながら、最新のC++ 0x機能のサポートが必要なのでgcc 4.6を使用する必要があります。 – rcv

+2

あなたはcmakeを再構築する必要があるようです。変更するファイルはDarwin.cmakeです。犯人行は SET(CMAKE_CXX_LINK_FLAGS "-Wl、-search_paths_first -headerpad_max_install_names") – EmeryBerger

+0

です。これは完全に機能しました。ありがとうございます。私はそれを受け入れることができるようにあなたのコメントを反映するようにあなたの答えを編集してもらえますか?また、Darwin.cmakeを変更するだけでうまくいきませんでした。モジュール/プラットフォーム/ Darwin *のすべてのファイルを変更して動作させる必要がありました。 – rcv