如何修改CMake生成的Makefile中可执行文件的规则名称?
修改CMake生成的Makefile规则名称为自定义名称
要让Makefile中出现自定义名称的构建规则(比如server),同时保留原可执行文件serverJ2T3的名称,只需在现有CMake代码中添加一个自定义伪目标,让它依赖原可执行目标即可。
修改后的完整CMake代码
cmake_minimum_required(VERSION 3.22) project(jetpack2tek3 C) include_directories(inc) set(CMAKE_C_STANDARD 11 ) add_executable(serverJ2T3 src/socket_server.c src/socket.c src/socket_commands.c src/commands/id.c src/commands/map.c src/commands/ready.c src/commands/fire.c src/commands/start.c src/commands/player.c src/commands/coin.c src/commands/finish.c ) # 添加自定义目标,作为原可执行目标的别名 add_custom_target(server ALL DEPENDS serverJ2T3 )
代码说明
add_custom_target(server):创建名为server的自定义目标ALL参数:让这个自定义目标成为默认构建的一部分(执行make时会自动触发,和原来执行make serverJ2T3效果一致);如果不需要默认构建,可去掉ALL,此时只有执行make server才会编译目标DEPENDS serverJ2T3:指定server目标依赖原可执行目标serverJ2T3,确保执行make server时会自动构建serverJ2T3
生成的Makefile效果
修改后生成的Makefile中会新增如下规则,符合你的期望:
# Build rule for target. server: cmake_check_build_system $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 server .PHONY : server # 原有的serverJ2T3规则依然保留 serverJ2T3: cmake_check_build_system $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 serverJ2T3 .PHONY : serverJ2T3
此时你既可以用make server构建目标,也可以继续使用make serverJ2T3,两种方式都会生成名为serverJ2T3的可执行文件。
内容的提问来源于stack exchange,提问作者dolor3sh4ze
相关产品推荐
相关产品推荐

