2

を使用して作成された Cmake 実行可能ファイルがありますADD_EXECUTABLE。実行可能ファイルには、プロジェクトの一部として作成された共有ライブラリ (へのリンク) が必要です。

最後のステップとして、ビルド プロセスの一部としてこの実行可能ファイルを実行し、ビルド用の追加ファイルをいくつか作成します。

それで

ADD_EXECUTABLE(foo)

ADD_CUSTOM_COMMAND(OUTPUT out1 
                   WORKING_DIRECTORY dir1
                   COMMAND foo args
                   ...)

ただし、カスタムコマンドを実行するとエラーが発生します

.../foo: error while loading shared libraries: libbar.so.1: cannot open shared object file: No such file or directory
make[2]: *** [out1]  Error 127

make: *** [all] Error 2

問題はLD_LIBRARY_PATH、実行可能ファイルがライブラリをロードするように設定されていないことです libbar.so.1。cmake でロード ライブラリの設定をクロスプラットフォームの方法で設定するにはどうすればよいですか。RPATH は実際には実行可能ファイルに埋め込まれているため、使用したくありません。これは望ましくありません。

4

0 に答える 0