6

cmakeを使用してパッケージを作成しています

私は次の構造を持っています

bin/
    bin1
lib/

    lib1
    lib2

ここで、lib1とlib2は外部ダイナミックライブラリです。lib1およびlib2と自動的にリンクするようにRPATHを設定するにはどうすればよいですか?

4

2 に答える 2

6

私もこれにcmakeをいじっています。Cmakeは、ビルド時にリンクするためにCMAKE_SKIP_BUILD_RPATHを使用し、インストールターゲットのビルド時に使用されるrpathを設定するためにCMAKE_INSTALL_RPATHを使用します。cmakeには、rpathメカニズムの使用に関するいくつかの良い情報があります: http ://www.cmake.org/Wiki/CMake_RPATH_handling

別の方法は、ldconfigを使用することです。svn(1.6.17)をビルドすると、makeinstalltargetがldconfigを呼び出してrpathを設定することに気付きました。

$ PWDではなく、バイナリを基準にして保持するためにrpathで必要になるため、$ORIGINを確認してください。

$ ORIGINでldのオプション-rpathを使用する簡単な(hello-world-esque)例を作成する

于 2012-03-30T19:58:09.380 に答える
0

AFAIK、CMakeは、target_link_libraries()でリンクしているすべてのターゲットにrpathを自動的に追加します。

それをオフに切り替えるには、CMAKE_SKIP_RPATHオプションがあります。

于 2011-12-06T15:13:22.390 に答える