让cmake将目录附加到生成路径
我想将另一个目录添加到目标的让cmake将目录附加到生成路径,cmake,rpath,Cmake,Rpath,我想将另一个目录添加到目标的BUILD\u RPATH属性中,但我希望它位于列表的末尾,因此它是在cmake自动添加到目标的BUILD\u RPATH的其他目录之后最后搜索的。但似乎没有办法在自动RPATH目录之后添加到属性中 在构建时,我的系统库不在正常位置,而是在临时区域中。为了运行已卸载的内置二进制文件,我需要将此暂存区域添加到二进制文件的RPATH中。这部分操作简单,效果良好,如下所示: add_executable(mybinary ${BINARY_SOURCES}) set_pro
BUILD\u RPATH
属性中,但我希望它位于列表的末尾,因此它是在cmake自动添加到目标的BUILD\u RPATH
的其他目录之后最后搜索的。但似乎没有办法在自动RPATH目录之后添加到属性中
在构建时,我的系统库不在正常位置,而是在临时区域中。为了运行已卸载的内置二进制文件,我需要将此暂存区域添加到二进制文件的RPATH中。这部分操作简单,效果良好,如下所示:
add_executable(mybinary ${BINARY_SOURCES})
set_property(TARGET mybinary APPEND PROPERTY BUILD_RPATH ${STAGING_LIB_DIR})
但是mybinary
也使用它作为同一项目的一部分构建的库:
add_library(mylib SHARED ${LIB_SOURCES})
target_link_libraries(mybinary PRIVATE mylib)
当运行mybinary
时,我希望它使用刚刚构建的mylib
,它位于${CMAKE\u CURRENT\u BINARY\u DIR}
中,而不是其他地方的另一个副本,可能是上次运行make install
时的系统库目录中。或者,在我的例子中,是${STAGING_LIB_DIR}
中库的副本
cmake将自动将非系统库的${cmake\u CURRENT\u BINARY\u DIR}
添加到生成的二进制文件的构建路径。因此,当从构建目录运行mybinary
时,它将在构建目录中搜索mylib
但问题是它会将这些自动库目录附加到我设置的BUILD\u RPATH
中。因此,我们得到了${STAGING_LIB_DIR}:${CMAKE_CURRENT_BINARY_DIR}
的最终RPATH,并且使用了mylib
的错误副本