私はclang(3.0)でC++、cmakeベースのプロジェクトをビルドしてリンクしようとしています。このプロジェクトは、カスタムディレクトリ/ my/dir /にインストールされているいくつかのライブラリにリンクしています。このディレクトリは、LD_LIBRARY_PATHおよびLIBRARY_PATH環境変数に含まれています。プロジェクトのビルドとリンクはg ++でうまくいきます。ClangリンカはLD_LIBRARY_PATHを調べません
cmakeのによって生成され、実行されたリンクコマンドは、次のようになります。
/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib
ldは次のメッセージで文句を言う:
/usr/bin/ld: cannot find -lmylib
私は手動で-L/my/dir/
を追加するたびに上記のリンクコマンドが正常に実行さ。 -L
フラグを指定せずにリンクする方法はありますか?
['LD_LIBRARY_PATH'](http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html)はリンクの依存関係を解決するのではなく、起動時にライブラリを読み込むためのものです。おそらくあなたは 'LDFLAGS'を使いたいでしょうか?興味深いもの: –
私はCMakeと__g ++ __と__clang ++ __を互換的に使用しますが、似たような問題はありませんでした。私は 'link_directories()'マクロを使ってライブラリパスを定義しています。 – Hindol