如何在cmake中设置rpath原点?

hc8w905p  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(96)

我找到了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中做到这一点?

dgiusagp

dgiusagp1#

以下是我在3.14的工作

set(CMAKE_INSTALL_RPATH $ORIGIN)

字符串
这是克雷格斯科特在他的CppCon 2019演讲Deep CMake for Library Authors中推荐的(幻灯片100/110)

qni6mghb

qni6mghb2#

您需要转义$符号而不是括号,请参见https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
这对我来说很有效:

SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_INSTALL_RPATH "\${ORIGIN}")

字符串

mwg9r5ms

mwg9r5ms3#

使用CMAKE_CARBALL_RPATH将该值设置为所有目标。要为单个目标设置,请使用set_target_properties(<target> PROPERTIES INSTALL_RPATH "$ORIGIN")。原始答案https://stackoverflow.com/a/75790542/1738637

相关问题