我找到了Cmake: How to set rpath to ${ORIGIN} with cmake,但我的cmake没有target_link_options。
我没有安装二进制文件,我只是用RUNTIME_OUTPUT_DIRECTORY
“安装”它,所以我认为CMAKE_INSTALL_RPATH
不会工作。尽管如此,我还是按照问题中的建议尝试了SET(CMAKE_INSTALL_RPATH "$\{ORIGIN\}")
,但我得到了
Syntax error in cmake code at
.../CMakeLists.txt:25
when parsing string
$\{ORIGIN\}
Invalid escape sequence \{
字符串
我需要设置我在Makefile中使用的这个rpath:
-rpath=\$$ORIGIN/lib
型
如何在cmake中做到这一点?
3条答案
按热度按时间dgiusagp1#
以下是我在3.14的工作
字符串
这是克雷格斯科特在他的CppCon 2019演讲Deep CMake for Library Authors中推荐的(幻灯片100/110)
qni6mghb2#
您需要转义$符号而不是括号,请参见https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
这对我来说很有效:
字符串
mwg9r5ms3#
使用CMAKE_CARBALL_RPATH将该值设置为所有目标。要为单个目标设置,请使用
set_target_properties(<target> PROPERTIES INSTALL_RPATH "$ORIGIN")
。原始答案https://stackoverflow.com/a/75790542/1738637