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

如何编写支持C++11、生成radixsort可执行文件的Makefile

正确Makefile编写方案

原有写法的问题

你之前的编译命令缺少-o输出参数,g++会将命令中的radixsort识别为待编译的输入文件而非目标可执行文件,直接触发编译错误。同时需要注意Makefile的编译命令行开头必须是Tab缩进,不能用空格替代。

基础可用版本

直接复制以下内容保存为Makefile即可满足需求:

radixsort: main.cpp header.h
	g++ -std=c++11 -o radixsort main.cpp

注意事项:

  • 第二行的g++命令开头必须是Tab缩进,这是Makefile的强制语法要求
  • 不需要显式把header.h传入编译命令,编译器会自动处理main.cpp中引入的头文件依赖
  • 编译完成后直接执行./radixsort即可运行程序

更易维护的规范版本

如果后续需要调整编译参数、C++标准或者源文件,用变量定义的方式修改成本更低:

# 定义使用的编译器
CXX = g++
# 定义编译参数:指定C++11标准、开启常规编译警告
CXXFLAGS = -std=c++11 -Wall
# 定义输出的可执行文件名
TARGET = radixsort
# 定义依赖的源文件
SRCS = main.cpp

$(TARGET): $(SRCS) header.h
	$(CXX) $(CXXFLAGS) -o $@ $<

# 清理规则:一键删除生成的可执行文件
.PHONY: clean
clean:
	rm -f $(TARGET)

保存后执行make即可编译生成可执行文件,执行make clean即可一键删除生成的radixsort文件。

内容的提问来源于stack exchange,提问作者Jeremy G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:45:02