VSCode 配置 CMake

VSCode 配置 C/C++ 环境的详细过程可参考:VSCode 配置 C/C++ 环境

1 配置C/C++编译环境

  • 方案一

    如果是在Windows,需要安装 MingW,可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。

    注意安装路径不要出现中文。

    打开 windows shell 界面,输入mingw-get install gccmingw-get install g++

    如果安装的时候提示安装包被错误下载,可使用方案二安装。

  • 方案二

    进入网址https://sourceforge.net/projects/mingw-w64/files/,下滑,下载图中所示压缩包。

    找一个无中文路径解压缩。

    添加环境变量。在Path中加入解压后的文件夹中的bin目录,如C:\ProgramFiles\MinGW\mingw64\bin。

  • 测试

    在 windows shell 界面输入gcc -vg++ -v,正确出现版本号则配置成功。

  • 创建 make.exe

    进入 MingW 安装位置下的 bin 目录,将 mingw32-make 复制一份,并改名为 make.exe。如果不这样做,无法使用 make 命令,而需要使用 mingw32-make 命令作为替代。

2 安装 CMake

可以去官网(https://cmake.org/download/)下载安装包。

向下滑,找到安装包,直接下载安装即可。

3 安装 VSCode 插件

按 Ctrl+Shift+x,或点击图中图标,搜索以下插件并安装:C/C++ 、Code Runner、CMake、CMake tools。

4 创建 CMake 工程

新建一个文件夹并用 VSCode 打开。

按 Ctrl+Shift+p,或点击图中所示图标,打开命令面板。

搜索 cmake,选择 CMake 快速入门。

输入项目名称。

选择项目类型。

选择 Executable。

生成以下文件。

然后就可以编写代码了。

5 CMakeLists.txt

编写 CMakeLists.txt 后,在同级目录下创建 build 文件夹,进入 build 文件夹,使用命令 cmake -G"MinGW Makefiles" ..,可自动生成 Makefile。

以下是 CMakeLists.txt 中一些可以使用的语句示例:

cmake 复制代码
# 指定最小版本
cmake_minimum_required(VERSION 3.0.0)
# 制定项目名称
project(algorithm VERSION 0.1.0 LANGUAGES C CXX)
# 引入CTest
include(CTest)
enable_testing()
# 添加子项目
add_subdirectory(subdirectory)
# 如果有共享的头文件或库,可以在这里包含
include_directories(common_include_folder)
# 如果有共享的库文件,可以在这里链接
link_directories(common_lib_folder)
# 指定生成可执行文件
# add_executable(algorithm main.cpp)
# 链接子项目生成的库文件
# target_link_libraries(MyExecutable subproject1_lib subproject2_lib)
# 设置参数
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
set(CMAKE_CXX_COMPILER "D:\\ProgramFiles\\MingW\\mingw64-8.1.0\\bin\\g++.exe")  # 指定编译器路径
# 添加所有源文件
file(GLOB SOURCES "src/*.cpp")
# 添加头文件路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
# 生成可执行文件
add_executable(partition_executable ${SOURCES})

示例:

假设项目结构如下:

project_root/
    |- CMakeLists.txt
    |- subproject1/
        |- CMakeLists.txt
        |- src/
            |- main.cpp
            |- utils/
                |- utility.cpp
                |- utility.h
        |- include/
            |- subproject1/
                |- header1.h
                |- header2.h
    |- subproject2/
        |- CMakeLists.txt
        |- src/
            |- main.cpp
            |- math/
                |- math.cpp
                |- math.h
        |- include/
            |- subproject2/
                |- header3.h
                |- header4.h

主项目的CMakeLists.txt文件可以如下所示:

CMakeLists 复制代码
cmake_minimum_required(VERSION 3.10)
project(MyProject)

# 添加子项目
add_subdirectory(subproject1)
add_subdirectory(subproject2)

子项目的CMakeLists.txt文件可以如下所示:

CMakeLists 复制代码
cmake
# 子项目名
project(subproject1)

# 添加所有源文件
file(GLOB SOURCES "src/*.cpp" "src/utils/*.cpp")

# 添加头文件路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

# 生成可执行文件
add_executable(subproject1_executable ${SOURCES})

可以在每个子项目文件夹下执行以下命令来构建和运行单独的子项目:

bash 复制代码
mkdir build
cd build
cmake ..
make
./subproject1_executable
./subproject2_executable

6 运行

经过上一步可生成 Makefile,然后运行 make 命令,就可以生成 exe 可执行文件。

接下来运行可执行文件就可以了。

相关推荐
QXH20000026 分钟前
数据结构—单链表
c语言·开发语言·数据结构
sinat_2765225732 分钟前
C++中move的使用
开发语言·c++
David猪大卫1 小时前
数据结构修炼——顺序表和链表的区别与联系
c语言·数据结构·学习·算法·leetcode·链表·蓝桥杯
棒棒糖的糖不含糖1 小时前
idea生成类信息及快捷开发配置
ide
Iceberg_wWzZ1 小时前
数据结构(Day14)
linux·c语言·数据结构·算法
微尘81 小时前
C语言存储类型 auto,register,static,extern
服务器·c语言·开发语言·c++·后端
计算机学姐1 小时前
基于PHP的电脑线上销售系统
开发语言·vscode·后端·mysql·编辑器·php·phpstorm
金博客1 小时前
Qt 模型视图(二):模型类QAbstractItemModel
c++·qt6.7.2
五味香1 小时前
C++学习,动态内存
java·c语言·开发语言·jvm·c++·学习·算法
无名之逆1 小时前
计算机专业的就业方向
java·开发语言·c++·人工智能·git·考研·面试