私のcmakeプロジェクトでLinux上でリンカの問題が発生しています。
ライブラリ ファイルを /usr/lib64 に配置するパッケージ (nvidias Cg ツールキット) をインストールしました。
ここで検索スクリプトを使用します: http://code.google.com/p/nvidia-texture-tools/source/browse/branches/2.0/cmake/FindCg.cmake?r=452
find スクリプトを実行した後に message() を使用して CG_LIBRARY と CG_GL_LIBRARY を出力すると、両方とも正しいファイルとパスに設定されます: /usr/lib64/libCg.so-lpthread /usr/lib64/libCgGL.so
検索スクリプトは、-lpthread を CG_LIBRARY に追加します。また、これを追加する行を削除して、ターゲット プロジェクトに手動で追加しようとしました。
次に、これらの変数を target_link_libraries() を使用してターゲット プロジェクトに追加します。
make を実行すると、次のように表示されます: /usr/bin/ld: -lCg が見つかりません /usr/bin/ld: -lCgGL が見つかりません collect2: エラー: ld が 1 つの終了ステータスを返しました
ここで、VERBOSE=1 を指定して make を実行すると、-L/usr/lib64 エントリがないことがわかります。CMakeFiles/MyProject.dir/link.txt を編集してエントリを手動で追加すると、リンクがうまくいきます。cmake は target_link_libraries() で -L エントリを自動的に追加すべきではありませんか? また、link_directories を使用して -L マニュアルを追加しようとしましたが、それも何もしません..