如何在Ubuntu系统的Clion中生成C++可执行文件
Ubuntu 20.04下C++项目编译生成可执行文件操作指南
前置准备:安装C++编译工具链
Ubuntu 20.04默认没有预装C++编译器,先安装配套编译工具:
- 首先更新软件源索引:
sudo apt update - 安装包含g++、make等工具的编译依赖包:
sudo apt install build-essential - 验证安装结果:执行
g++ --version,正常输出版本信息即为安装成功。
单文件项目编译
如果你的项目只有单个.cpp源文件(比如文件名是main.cpp),直接用g++编译即可:
- 编译命令:
g++ 源文件名.cpp -o 自定义可执行文件名
示例:要生成名为my_project的可执行,执行g++ main.cpp -o my_project - 运行可执行文件:
./my_project
如果你不指定
-o参数,默认会生成名为a.out的可执行文件,运行时执行./a.out即可。
多文件项目编译(两种常用方案)
如果项目包含多个.cpp源文件(比如main.cpp、utils.cpp、calculator.cpp),可根据项目规模选择对应方案:
方案1:一次性编译所有源文件(适合文件数<5的小型项目)
直接把所有源文件路径写在g++命令后即可,编译器会自动处理依赖关系:g++ main.cpp utils.cpp calculator.cpp -o my_project
方案2:用Makefile管理编译(适合文件较多、迭代频繁的项目)
在项目根目录新建名为Makefile的文件,写入对应编译规则,后续每次编译只需要执行make命令即可,修改代码后只会增量编译变动的文件,节省编译时间。
参考Makefile模板(根据你的项目实际参数调整即可):
# 指定编译器 CXX = g++ # 编译参数:开启所有常规警告、指定C++标准为C++17,可按需修改 CXXFLAGS = -Wall -std=c++17 # 最终生成的可执行文件名 TARGET = my_project # 所有.cpp源文件列表,多个文件用空格分隔 SRCS = main.cpp utils.cpp calculator.cpp # 自动生成对应的.o目标文件列表 OBJS = $(SRCS:.cpp=.o) # 生成最终可执行的规则 $(TARGET): $(OBJS) $(CXX) $(OBJS) -o $(TARGET) # 每个.cpp文件生成对应.o文件的规则 %.o: %.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ # 清理编译产物的规则,执行make clean即可删除所有.o文件和可执行 clean: rm -f $(OBJS) $(TARGET)
内容的提问来源于stack exchange,提问作者Daniel López
相关产品推荐
相关产品推荐

