我需要找到一种方法,在安装后将其他名称链接到已安装的可执行文件。
下面的例子很接近,除了两个问题。一,链接是在每个目标之后完成的,而不仅仅是安装。二,链接是在构建目录中创建的,而不是在安装目录中创建的(我可以添加必要的路径来执行此操作,但如果在安装之前完成,则会出错。)
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
答案 0 :(得分:4)
我在类似情况下所做的是使用类似于您所做的自定义命令,但添加额外的install
命令以在目标旁边的最终bin目录中安装链接。所以在add_custom_command
:
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/grm
${CMAKE_CURRENT_BINARY_DIR}/grs
${CMAKE_CURRENT_BINARY_DIR}/grh
DESTINATION bin
)
当然,如果您将链接更改为符号链接(ln -s),这可能只会达到预期效果。