windows10使用vscode+cmake编译c++代码

概述

  • 本文将介绍 VScode + cmakewindows10上编译c++代码
  • 前提: 我之前已经安装过VS2017, 故 编译将采用cl.exe。

开始之前

本文演示环境基于 windows10。cmake和 VScode版本如下。
VS code版本: 1.54.1
cmake 版本: 3.18

VSCode插件安装

我的插件安装的比较多,你瞧

还有

编译本文演示的代码需要打开VScode插件商店或者离线安装如下插件:

c/c++

下载地址: 点我直达官网
点击 install 将启动vscode在线安装 或者右侧的 download extension再离线安装

cmake

下载地址: 点我直达官网

cmake tools

下载地址: 点我直达官网
插件安装后,下面开始准备安装cmake

cmake

  • 下载地址: https://cmake.org/download/

  • 下载适合自己的版本, 安装后,将其 cmake.exe所在目录添加到系统环境变量(或者打开命令行转到cmake.exe所在目录),测试cmake是否安装成功。

  • 测试键入命令cmake --version. 如果弹出类似下面的输出,则说明成功

使用VScode打开文件夹

方便测试,可在桌面创建文件夹, 这里取名为 udp_socket 为例。创建成功后,使用VScode打开该文件夹, 方式有两种:

  • 1.先打开VScode, VS code首页会提示你选择打开文件夹

    VScode 菜单也可以打开文件夹
  • 2.打开创建的udp_socket 文件夹,此时,点击鼠标右键菜单中选择 通过VScode打开 , 即可。

演示代码

基于打开的VScode,创建 名为 main.cc 的文件

创建结束后是这样的

文件已经准备好,准备一段测试代码,如下

#include <iostream>

/// 增加函数调试使用
void hello_vs_code_()
{
    using namespace std;
    int x = 11 + 22 + 33;
    cout << "\n x = " << x;
}

int main(int argc, char* argv[], char* en[])
{
    using namespace std;
    cout << "hello vscode";
    hello_vs_code_();

    return 0;   
}

点击保存。

准备cmakelists.txt文件

  • cmakelists.txt文件放在创建的 udp_socket文件夹下。
    可以创建默认的 CMakeLists.txt文件,不过,文件内容不是我想要的,我选择了更加通俗易懂的 modern cmake。 cmakelists.txt文件内容如下
cmake_minimum_required(VERSION 3.18)

# ---------------------------------------------------------------------------------------------------
# 1. set name
project(lib_udp)

# ---------------------------------------------------------------------------------------------------
# 2. to get all source files
# set source files
# -------------------------------------------------------------------------------------
file(GLOB_RECURSE udp_src ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc)

# build a library for udp
function(lib_udp_on_win)
	# dynamic library
	# ---------------------------------------------------------------------------------------------------

	# compiler is vs
	if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
		# build program
		add_executable( ${PROJECT_NAME} ${lib_udp_type} ${udp_src} )

		# .h and .cxx files
		target_sources(${PROJECT_NAME} PRIVATE ${udp_src} )

		# use c++11
		target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)

	endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
endfunction(lib_udp_on_win)


# build  
# ---------------------------------------------------------------------------------------------
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
	lib_udp_on_win()
endif()

这段配置代码 仅配置一个可执行程项目。cmake语法不是本文的重点。

cmake tools 插件配置

  • 一定要理解, VScode仅仅是一个软件,没有Visual studio 2017这样的IDE集成度高,什么都配置好了。
  • 打开VScode 的设置, 键入: cmake

    设置cmake.exe所在路径,如图,我的cmake安装在C:\major\development\tools\cmake_64\bin目录下,同时将cmake.exe添加到目录后面,指定cmake的绝对路径。

开始编译代码

下面的操作都是基于: ctrl + shift + p 快捷键。

1. select a kit

按下快捷键 ctrl + shift + p , 键入: cmake:select a kit, 回车选择适合自己的工具包。

我这里演示的是x86

2. select variant

按下快捷键 ctrl + shift + p , 键入: cmake:select variant

因为要演示调试,这里选择 debug.

build

按下快捷键 ctrl + shift + p , 键入: cmake:build, 选择 cmake:build**. ![](https://img2020.cnblogs.com/blog/1630599/202103/1630599-20210314003520456-1189206038.png) 观察输出`窗口, 可以看到已经编译成功

debug调试

设置好断点,按下快捷键 ctrl + shift + p , 键入: cmake:debug , 程序将执行,并停在断点所在位置,

调试快捷键和VS开发IDE一致。
左侧可以观察变量的值。

继续运行F5

F5, 程序将运行结束。

补充(可有可无)

如果你更改了 cmakelists.txt文件,可以使用命令 cmake:configure实现项目配置,再执行build就OK了

posted @ 2021-03-14 00:45  mohist  阅读(12295)  评论(0编辑  收藏  举报