目前我正在使用以下语法设置 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}
)
第三个路径配置生成的 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}
)
但没有任何效果。
转义值的正确方法是什么?