現在、次の構文を使用して RPATH を設定しています。
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN/../lib")
CMakeを使用したバイナリビルドで動作しています。問題は、自動構成スクリプトを使用してCMakeを使用して構築しているサードパーティのバイナリでは機能しないことです。構成に次のコマンドを使用しています。
add_custom_target(
third_party_bin ALL
COMMAND ./configure
--with-ld-opt=\"-Wl,-rpath,${CMAKE_INSTALL_RPATH}\"
--prefix=${CMAKE_INSTALL_PREFIX}
)
3 番目のパスの configure によって生成された Makefile は次のようになります。
" -Wl,-rpath,':RIGIN/../lib' -lstdc++"
${CMAKE_INSTALL_RPATH}
正しく逃げる必要があると思います。次のようなオプションも使用してみました。
add_custom_target(
third_party_bin ALL
COMMAND ./configure
--with-ld-opt=\"-Wl,-rpath,\$\$ORIGIN/../lib\"
--prefix=${CMAKE_INSTALL_PREFIX}
)
と
add_custom_target(
third_party_bin ALL
COMMAND ./configure
--with-ld-opt=\"-Wl,-rpath,\\$\$ORIGIN/../lib\"
--prefix=${CMAKE_INSTALL_PREFIX}
)
しかし、何も機能しません。
値をエスケープする正しい方法は何ですか?