下面给你一个从零开始的 Ubuntu + C++ + CMake 配置指南,涵盖安装、项目结构、CMakeLists.txt 写法以及常见用法。
sudo apt update
sudo apt upgrade
sudo apt install build-essential cmake
检查是否安装成功:
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(my_project)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(my_project main.cpp)
cd my_project
mkdir build
cd build
cmake ..
make
./my_project
my_project/
├── CMakeLists.txt
├── main.cpp
├── math/
│ ├── add.cpp
│ └── add.h
#pragma once
int add(int a, int b);
#include "add.h"
int add(int a, int b) {
return a + b;
}
#include <iostream>
#include "math/add.h"
int main() {
std::cout << add(3, 4) << std::endl;
}
cmake_minimum_required(VERSION 3.10)
project(my_project)
set(CMAKE_CXX_STANDARD 17)
add_executable(my_project
main.cpp
math/add.cpp
)
target_include_directories(my_project PRIVATE math)
add_library(math_lib STATIC math/add.cpp)
target_include_directories(math_lib PUBLIC math)
add_executable(my_project main.cpp)
target_link_libraries(my_project PRIVATE math_lib)
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake -DCMAKE_BUILD_TYPE=Release ..
export CC=gcc
export CXX=g++
make VERBOSE=1
| 问题 | 解决 |
|---|---|
cmake: command not found |
未安装 cmake |
| 找不到头文件 | 检查 target_include_directories |
| undefined reference | 未链接库 |
| C++17 不支持 | set(CMAKE_CXX_STANDARD 17) |
如果你需要:
可以告诉我你的具体需求,我可以给你更针对性的配置示例。
需要我给你一个完整可运行的 GitHub 风格模板吗?