如何修改Makefile使编译生成的目标文件名为‘game’?
如何修改Makefile使编译生成的目标文件名为‘game’?
嘿,这事儿超简单的!你的Makefile里最终生成的可执行文件名是由TARGET变量控制的,只要调整这个变量的定义就能搞定,具体操作看下面:
具体修改步骤
- 先在你的Makefile里找到这一行定义最终目标的代码:
TARGET = $(BIN_DIR)/Game - 把大写的
Game改成小写的game就行,修改后是这样:TARGET = $(BIN_DIR)/game
修改后的完整Makefile参考
CXX = g++ CXXFLAGS = -std=c++20 -Wall -Iinclude LIBS = -lraylib -lm -lGL -lpthread -ldl -lrt -lX11 SRC_DIR = src BUILD_DIR = build BIN_DIR = bin # 核心修改:把原有的Game改成小写game TARGET = $(BIN_DIR)/game SOURCES = $(wildcard $(SRC_DIR)/*.cpp) OBJECTS = $(patsubst $(SRC_DIR)/%.cpp, $(BUILD_DIR)/%.o,$(SOURCES)) .PHONY: all clean run all: $(TARGET) $(TARGET): $(OBJECTS) @mkdir -p $(BIN_DIR) $(CXX) $(OBJECTS) -o $@ $(LIBS) # 可选:如果需要清理生成的文件,可以补充这个clean规则 clean: rm -rf $(BUILD_DIR) $(BIN_DIR)
额外小提醒
- 编译命令里的
$@是Makefile的自动变量,它会自动匹配TARGET的定义值,所以这部分你完全不用手动修改 - 要是你之前写了
clean规则单独指定删除旧的Game文件,记得同步改成game;不过上面的clean规则直接删除整个bin目录,就不用纠结文件名的问题啦,更省心
内容来源于stack exchange
相关产品推荐
相关产品推荐

