温馨提示×

如何编译linux c++项目

小樊
52
2026-09-11 01:04:37
栏目: 编程语言

编译 Linux 下的 C++ 项目通常有多种方式,从最简单的 g++ 命令到使用构建工具(Make、CMake、Meson 等)。下面按由浅入深的方式说明。


一、最基础:使用 g++ 编译

1. 单个源文件

// hello.cpp
#include <iostream>
int main() {
    std::cout << "Hello Linux" << std::endl;
}

编译:

g++ hello.cpp -o hello

运行:

./hello

2. 多个源文件

g++ main.cpp func.cpp -o app

常用编译选项:

g++ -std=c++17 -O2 -Wall -Wextra main.cpp -o app

说明:

  • -std=c++17:C++ 标准
  • -O2:优化
  • -Wall -Wextra:警告

二、使用 Make(中小型项目)

示例目录

project/
├── main.cpp
├── calc.cpp
├── calc.h
└── Makefile

Makefile 示例

CXX = g++
CXXFLAGS = -std=c++17 -O2 -Wall

app: main.o calc.o
	$(CXX) main.o calc.o -o app

main.o: main.cpp calc.h
	$(CXX) $(CXXFLAGS) -c main.cpp

calc.o: calc.cpp calc.h
	$(CXX) $(CXXFLAGS) -c calc.cpp

clean:
	rm -f *.o app

使用

make
./app
make clean

三、使用 CMake(推荐,跨平台)

目录结构

project/
├── CMakeLists.txt
├── main.cpp
└── calc.cpp

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(MyApp)

set(CMAKE_CXX_STANDARD 17)

add_executable(app
    main.cpp
    calc.cpp
)

编译步骤

mkdir build
cd build
cmake ..
make
./app

四、使用第三方库(如 pthread、boost)

链接 pthread

g++ main.cpp -pthread -o app

CMake 中链接

find_package(Threads REQUIRED)
target_link_libraries(app Threads::Threads)

五、调试与优化

调试(gdb)

g++ -g main.cpp -o app
gdb ./app

查看依赖

ldd app

静态分析

g++ -Wall -Wextra -pedantic main.cpp

六、常见工具链

工具 用途
g++ / clang++ 编译器
make 构建工具
cmake 跨平台构建
ninja 快速构建
gdb 调试
valgrind 内存检测

七、推荐学习路径

  1. 先会用 g++
  2. 再学 Makefile
  3. 然后学 CMake(工业级项目主流)

如果你有:

  • 具体项目结构
  • 使用的库(如 OpenCV / Boost)
  • 是否跨平台

可以告诉我,我可以给你定制的编译方案。

0 踩