gpt4 book ai didi

CMake:安装后如何链接(ln)其他名称?

转载 作者:行者123 更新时间:2023-12-01 12:38:43 25 4
gpt4 key购买 nike

我需要找到一种方法,在安装后将其他名称链接到已安装的可执行文件。

下面的例子很接近,除了两个问题。第一,链接是在每个目标之后完成的,而不仅仅是安装。第二,链接是在构建目录中创建的,而不是在安装目录中(我可能可以添加执行此操作所需的路径,但如果在安装之前完成它会出错。)

cmake_minimum_required(VERSION 2.8.4)
add_executable(gr gr.c)
install(TARGETS gr DESTINATION bin)
add_custom_command(
TARGET gr
POST_BUILD
COMMAND ln;-f;gr;grm
COMMAND ln;-f;gr;grs
COMMAND ln;-f;gr;grh
)

做我想做的事情的简单、干净的方法是什么?

如果不清楚,Makefile 等价物是:

gr:  gr.c
cc -o gr gr.c

install:
install gr ${BINDIR}
ln -f ${BINDIR}/gr ${BINDIR}/grm
ln -f ${BINDIR}/gr ${BINDIR}/grs
ln -f ${BINDIR}/gr ${BINDIR}/grh

最佳答案

我在类似情况下所做的是使用与您所做的类似的自定义命令,但添加了一个额外的 install 命令以将链接安装到目标旁边的最终 bin 目录中。所以在你的 add_custom_command 之后:

install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/grm
${CMAKE_CURRENT_BINARY_DIR}/grs
${CMAKE_CURRENT_BINARY_DIR}/grh
DESTINATION bin
)

当然,如果您将链接更改为符号链接(symbolic link) (ln -s),这可能只会执行您期望的操作。

关于CMake:安装后如何链接(ln)其他名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26979351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com