在 CentOS 上编译 C++ 程序,通常选择 g++(GCC) 或 Clang。下面按常见场景给你一个完整说明。
sudo yum install -y gcc gcc-c++
验证版本:
g++ --version
CentOS 7 默认是 g++ 4.8
CentOS 8 / Stream 可用 AppStream 或 devtoolset 升级
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
scl enable devtoolset-11 bash
永久生效(写入 ~/.bashrc):
source /opt/rh/devtoolset-11/enable
sudo yum install -y clang
验证:
clang++ --version
// main.cpp
#include <iostream>
int main() {
std::cout << "Hello CentOS C++" << std::endl;
return 0;
}
g++ main.cpp -o main
运行:
./main
g++ -std=c++11 main.cpp -o main
g++ -std=c++17 main.cpp -o main
g++ -std=c++20 main.cpp -o main
g++ -g main.cpp -o main
g++ -O2 main.cpp -o main
或
g++ -O3 main.cpp -o main
g++ -Wall -Wextra main.cpp -o main
g++ -std=c++17 -O2 -Wall -Wextra -g main.cpp -o main
g++ main.cpp utils.cpp -o app
或分步编译:
g++ -c main.cpp
g++ -c utils.cpp
g++ main.o utils.o -o app
CXX = g++
CXXFLAGS = -std=c++17 -O2 -Wall -g
app: main.o utils.o
$(CXX) main.o utils.o -o app
main.o: main.cpp
$(CXX) $(CXXFLAGS) -c main.cpp
utils.o: utils.cpp
$(CXX) $(CXXFLAGS) -c utils.cpp
clean:
rm -f *.o app
使用:
make
./app
g++: command not foundsudo yum install gcc-c++
使用 devtoolset-11 或更新系统
g++ main.cpp -o main -lpthread
如果你愿意,可以告诉我:
我可以给你更精确的配置方案。