在 CentOS 上构建 C++ 项目,常见做法有 直接使用 g++/make、使用 CMake,以及更复杂的 自动化构建工具(如 Bazel、Meson)。下面按从简单到规范的方式给你讲清楚。
sudo yum groupinstall "Development Tools"
# 或
sudo yum install gcc gcc-c++ make cmake git
查看版本:
g++ --version
cmake --version
hello.cpp
#include <iostream>
int main() {
std::cout << "Hello CentOS" << std::endl;
return 0;
}
g++ hello.cpp -o hello
./hello
g++ main.cpp utils.cpp -o app -std=c++17 -O2
project/
├── main.cpp
├── utils.cpp
├── utils.h
└── Makefile
CXX = g++
CXXFLAGS = -std=c++17 -O2
TARGET = app
OBJS = main.o utils.o
$(TARGET): $(OBJS)
$(CXX) $(OBJS) -o $(TARGET)
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
make
./app
make clean
project/
├── CMakeLists.txt
├── main.cpp
├── utils.cpp
└── utils.h
cmake_minimum_required(VERSION 3.10)
project(MyApp)
set(CMAKE_CXX_STANDARD 17)
add_executable(app
main.cpp
utils.cpp
)
mkdir build
cd build
cmake ..
make
./app
cmake -DCMAKE_CXX_COMPILER=g++ ..
sudo yum install boost-devel openssl-devel
find_package(Boost REQUIRED)
target_link_libraries(app Boost::boost)
CentOS 7 默认 g++ 4.8
解决:
sudo yum install centos-release-scl
sudo yum install devtoolset-11
scl enable devtoolset-11 bash
-I/path/to/include
-L/path/to/lib -lmylib
project/
├── CMakeLists.txt
├── src/
├── include/
├── third_party/
└── build/
如果你愿意,可以告诉我:
我可以给你定制一套完整构建方案。