【发布时间】:2020-05-03 09:03:59
【问题描述】:
我尝试了多种方法:
-
install(TARGETS tgt RUNTIME DESTINATION /usr/bin RENAME another_name)忽略 RENAME 而没有任何警告。文档中没有关于 RENAME for TARGETS 的说法。 -
add_executable(zbus-publish ALIAS zbus-example-publisher)给出错误install TARGETS given target "zbus-publish" which is an alias. -
试图将符号链接安装到已安装的目标
install(CODE "execute_process(COMMAND ln -s zbus-example-publisher ${DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/zbus-publish COMMAND ln -s zbus-example-subscriber ${DESTDIR}/${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/zbus-subscribe) message(==================================================)"但它将 DESTDIR 扩展为空。
我需要 DESTDIR,因为使用 make DESTDIR=xxxx 来测试我的安装。非常方便。在交叉编译时也很有用。
CMake 版本 3.17.2
【问题讨论】:
-
为什么需要在安装时“重命名”它?为什么不从一开始就有想要的名字? :) 请更详细地描述您的情况。
-
而 JFYI,
RENAME适用于install(FILES...),不适用于install(TARGETS...)。 -
"但是它将 DESTDIR 扩展为空。" - 所以你的具体问题是关于处理
install(CODE)中的DESTDIR而不是general 中的符号链接,不是吗? -
另一个仅供参考(和提示)
DESTDIR是一个 GNU Make 变量——意思是 不是 CMake :) 并且 GNU Make 通过 environment传递它> 到子流程。 -
另一个提示:
cmake -E create_symlink ...是一种可移植的方式来制作符号链接。
标签: cmake