質問

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

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

bin/
    bin1
lib/

    lib1
    lib2

ここで、LIB1とLIB2は外部動的ライブラリです。 rpathを設定して、lib1およびlib2と自動的にリンクするようにするにはどうすればよいですか?

役に立ちましたか?

解決

私はこれについてもCmakeに騒ぎ立ててきました。 CMAKEは、CMAKE_SKIP_BUILD_RPATHを使用してビルド時にリンクし、CMAKE_INSTALL_RPATHをリンクして、インストールターゲットの構築時に使用されるRPATを設定します。 Cmakeには、RPATメカニズムを使用することに関する良い情報があります。http://www.cmake.org/wiki/cmake_rpath_handling

別の方法は、ldconfigを使用することです。 SVN(1.6.17)を構築すると、インストールターゲットがldconfigを呼び出してrpathを設定するようにします。

$ PWDに対してではなく、バイナリに対してそれを保持するためにRPATHが必要な$ Originをご覧ください。

LDのオプション-RPATHを$ Originで使用する単純な(ハローワールド風)例を構築する

他のヒント

afaik、cmakeはすべてのターゲットにrpathを自動的に追加し、ターゲット_link_libraries()とリンクしています。

それをオフにするには、そこにあります CMAKE_SKIP_RPATH オプション。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top