下面给你一份从零开始在 Ubuntu 上配置 C++ + CMake 的实用指南,包含安装、项目结构、CMakeLists.txt 示例和常见配置。
sudo apt update
sudo apt install -y build-essential cmake gdb
检查版本:
gcc --version
g++ --version
cmake --version
my_project/
├── CMakeLists.txt
└── main.cpp
#include <iostream>
int main() {
std::cout << "Hello CMake!" << std::endl;
return 0;
}
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(my_app main.cpp)
cd my_project
mkdir build
cd build
cmake ..
make
./my_app
cmake_minimum_required(VERSION 3.16)
project(MyProject CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 编译选项
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
add_executable(my_app main.cpp)
my_project/
├── CMakeLists.txt
├── src/
│ ├── main.cpp
│ └── math.cpp
├── include/
│ └── math.h
cmake_minimum_required(VERSION 3.16)
project(MyProject CXX)
set(CMAKE_CXX_STANDARD 17)
include_directories(include)
add_executable(my_app
src/main.cpp
src/math.cpp
)
add_library(mylib STATIC src/math.cpp)
target_include_directories(mylib PUBLIC include)
add_executable(my_app src/main.cpp)
target_link_libraries(my_app mylib)
##七、Debug / Release 配置
cmake -DCMAKE_BUILD_TYPE=Debug ..
# 或
cmake -DCMAKE_BUILD_TYPE=Release ..
CMakeLists.txt 中可加:
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_compile_options(-g)
endif()
sudo apt install libfmt-dev
find_package(fmt REQUIRED)
target_link_libraries(my_app fmt::fmt)
sudo apt install cmake
# 或手动安装新版
target_include_directoriesinclude_directories(不推荐)target_include_directories(my_app PRIVATE include)
如果你有具体需求(比如 ROS / OpenCV / CUDA / 多模块项目 / CLion / VSCode),可以告诉我,我可以给你更针对性的 CMake 配置。