You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:57:40