C++ 开发环境配置
C++ 开发环境配置
我们使用主流的开源软件来配置C++开发环境
vscodecmake
以上均是跨平台的开源软件,也是最主流的开发环境
环境安装
在linux需要安装以下软件
- gcc
- g++
- cmake
- gdb
可以使用以下命令安装
sudo apt install gcc g++ cmake gdb
在系统使用apt安装三方库之后还可以配合cmake的find_package使用三方库.
在windows上可以使用msys2
msys2官网
MSYS2 提供了许多最新版本的原生构建软件,例如 GCC、MinGW-w64、CPython、CMake、Meson、OpenSSL、FFmpeg、Rust、Ruby 等,仅举几例。
查看电脑架构:
PS C:\Users\29051> [Environment]::GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
AMD64
AMD64即为x86_64.
下载x86_64版本的MSYS2然后后傻瓜式安装。打开UCRT64 shell.
官网如下介绍:
UCRT (Universal C Runtime) is a newer version which is also used by Microsoft Visual Studio by default. It should work and behave as if the code was compiled with MSVC.
安装开发环境
$ pacman -S mingw-w64-ucrt-x86_64-gcc
$ pacman -S mingw-w64-ucrt-x86_64-g++
$ pacman -S mingw-w64-ucrt-x86_64-gdb
$ pacman -S mingw-w64-ucrt-x86_64-cmake
$ pacman -S mingw-w64-ucrt-x86_64-python3
# 查看版本
$ gcc --version
gcc.exe (Rev8, Built by MSYS2 project) 15.1.0
$ g++ --version
g++.exe (Rev8, Built by MSYS2 project) 15.1.0
使用msys2可以方便升级、卸载、集成各种库。集成库可以配置cmake的find_package使用三方库.
记得安装的命令都以mingw-w64-ucrt-x86_64开头,不要安装错误。写错的话,会被安装在其他地方。
常用命令
# 更新已安装的软件包
$ pacman -Syu
# 安装更新软件包
$ pacman -S mingw-w64-ucrt-x86_64-gcc
# 卸载软件包
$ pacman -R mingw-w64-ucrt-x86_64-gcc
# 搜索软件包
$ pacman -Ss mingw-w64-ucrt-x86_64-gcc
-S:-Sync代表安装、更新。y: 代表刷新(refresh) 软件包数据库。u:upgrade更新已安装的软件包。s:search搜索数据包-R:-Remove代表移除。
基础环境搭建
ctrl + shift + A选择Cmake: Quick Start,一步一步开始创建项目,等到最后一步:

这一步不要管按Esc退出,新项目就创建好了。
写第一个Hello World
创建如下项目机构:

配置CmakeLists.txt
cmake_minimum_required(VERSION 3.10.0)
project(learn01 VERSION 0.1.0 LANGUAGES C CXX)
# ✅ 设置 C++ 标准
set(CMAKE_CXX_STANDARD 26) # 使用 C++26 标准
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 强制使用指定标准
set(CMAKE_CXX_EXTENSIONS OFF) # 禁用编译器扩展(使用纯标准)
# 如果是单配置生成器(Makefile/Ninja),在未指定时默认使用 Release
if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type specified, default to Release")
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type" FORCE)
endif()
# 查找源文件
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS
"src/*.cpp"
"src/*.c"
)
add_executable(learn01 main.cpp ${SOURCES})
# 设置头文件包含路径
target_include_directories(${CMAKE_PROJECT_NAME}
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/learn01
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/learn02
)
# —— 为目标按配置设置编译选项 ——
# Release: -O2 (GCC/Clang) 或 /O2 (MSVC),并加上 -DNDEBUG
# Debug: 指定更合适的 Debug 标志
if (MSVC)
message(STATUS "Using MSVC compiler settings")
target_compile_options(learn01 PRIVATE
$<$<CONFIG:Release>:/O3 /DNDEBUG>
$<$<CONFIG:Debug>:/Od /Zi>
)
else()
message(STATUS "Using GCC/Clang compiler settings")
target_compile_options(learn01 PRIVATE
$<$<CONFIG:Release>:-O3 -DNDEBUG> // 1
$<$<CONFIG:Debug>:-Og -g>
)
endif()
# 可选:对 Release 开启跨模块优化(LTO),如果编译器/链接器支持
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON)
include(CTest)
enable_testing()
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
由代码1处可知:
区分是否是release环境
#ifdef NDEBUG
std::cout << "Release build (optimizations likely enabled)\n";
#else
std::cout << "Debug build\n";
#endif
learn01.hpp
#ifndef LEARN01_HPP
#define LEARN01_HPP
#include <iostream>
#include <string>
#include <vector>
#include <coroutine>
#include <exception>
#include <thread>
#include <chrono>
#include <future>
#include <vector>
#include <queue>
#include <mutex>
#include <condition_variable>
#include <functional>
#include <memory>
#include <format>
#include <istream>
#include <fstream>
namespace learn01{
void learn02();
void learn01();
}
#endif // LEARN01_HPP
learn01.cpp
#include "learn01.hpp"
namespace learn01{
void learn02(){
std::cout << "hello World\n";
}
}
main.cpp
#include <learn01.hpp>
int main(int, char**){
learn01::learn02();
}
运行Hello World成功.
编译release
配置用户环境变量:

在项目根目录执行
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
ninja -C build -v
cmake
-S: 指定源码目录-B: 指定构建目录-D: 代表替换CmakeLists.txt的变量
ninja
-C: 代表编译目录,选项用于指定 Ninja 的工作目录(Change directory),寻找build.ninja文件。-v:verbose代表详细输出日志.
有什么不足还请大家指出,如果对C++感兴趣,欢迎加入群聊,专门来学习沟通C++.


C++ 开发环境配置
浙公网安备 33010602011771号