5

私は独自の GCC とライブラリを構築し、システムの他の部分に干渉しない/opt/gcc-4.6.2/libような一般的な名前のライブラリにライブラリを配置しました。libstdc++これは、ライブラリの検索パスを手動で指定する必要があることを意味します。

$> g++-4.6.2 -L/opt/gcc-4.6.2/lib input.cpp

プロジェクトを CMake でビルドしようとすると、CMake にそのライブラリを検索するように指示する方法がわかりません。ドキュメントCMAKE_LIBRARY_PATHには、 Makefile の生成に使用する行に設定したuse と書かれています。

$> cmake .. -DCMAKE_CXX_COMPILER=g++-4.6.2 \
            -DCMAKE_LIBRARY_PATH=/opt/gcc-4.6.2/lib

ただし、これは単純なプログラムのコンパイル テストでは失敗します。

# blah blah blah...

/usr/local/bin/g++-4.6.2
CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o -o cmTryCompileExec
-rdynamic

/usr/bin/ld: cannot find -lstdc++

# blah blah blah...

-L/opt/gcc-4.6.2/libテストコンパイルのためにCMakeを発行させるために必要なブードゥーマジックを見つけることができないようです(プロジェクトがビルドされたCMAKE_LIBRARY_PATHに機能することはわかっています)。CMake に別のライブラリ パスを使用させてテスト実行可能ファイルをリンクさせるにはどうすればよいですか?

4

1 に答える 1

3

うーん、gcc 自体がどのように構築されているかはよくわかりませんが、ライブラリを検索する場所を知っている必要があると思います。たぶん、クロスコンパイルを試してみてください。

また、CMAKE_LIBRARY_PATHコンパイラではなくCMakeのみにライブラリ検索パスを設定するため、問題は解決しません。

CMAKE_CXX_FLAGSそのため、設定またはCMAKE_EXE_LINKER_FLAGSto以外の方法はありません-L/opt/gcc-4.6.2/lib

于 2012-01-09T09:05:51.990 に答える