windows10使用vscode+cmake编译c++代码
概述
- 本文将介绍 VScode + cmake 在 windows10上编译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
下载适合自己的版本, 安装后,将其 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**.  观察
输出`窗口, 可以看到已经编译成功
debug调试
设置好断点,按下快捷键 ctrl + shift + p , 键入: cmake:debug , 程序将执行,并停在断点所在位置,
调试快捷键和VS开发IDE一致。
左侧可以观察变量的值。
继续运行F5
F5, 程序将运行结束。
补充(可有可无)
如果你更改了 cmakelists.txt文件,可以使用命令 cmake:configure实现项目配置,再执行build就OK了
windows10使用vscode+cmake编译c++代码的更多相关文章
- windows10下vscode+cmake编译Qt5代码
概述 本文演示环境: windows10 cmake version:3.18 qt version: 5.14 vscode version: 1.54.1 本文演示环境基于在线模式, 离线使用VS ...
- windows10下vscode+cmake编译Qt5代码(2)
概述 本文依赖 前文 本文将介绍使用cmake语法屏蔽运行Qt exe的cmd窗口 解决办法 配置VS项目属性, 缺点: cmake重新 configure后,项目属性会重置,再次运行还将出现cmd弹 ...
- centos 7 vscode cmake 编译c++工程
一.环境说明 1)gcc/g++ cmake安装建议 gcc/g++内核自带的即可,如果需要新的自行安装, cmake也一样,如有需要新的版本自行安装. 2)vscode安装插件 必要的插件c/c+ ...
- vscode, cmake编译多个C++文件
目的是利用vscode及相关插件编译多个C++文件. 我已经装好cmake和mingw并且将它们的路径添加到系统变量path中了. vscode装上如下几个插件: 点击vscode左上角 文件-& ...
- linux 下 VSCODE 使用CMake编译STM32程序
项目在做什么 项目地址 本项目是为了研究MCU在linux下开发而做的 --build 存放cmake编译生成的文件 --cmake 存放cmake编译时会用到的文件,比如工具链检查.编译选项等 -- ...
- AndroidStudio用Cmake方式编译NDK代码(cmake配置.a库)
1.cmake是什么? CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C+ ...
- ubuntu下,VSCode采用cmake编译C++工程
首先在VSCode中下载CMake和CMake Tools两个插件. 选中CMake Tools,可以看到在VSCode中如何使用cmake编译C++工程的教程. 官网教程 最重要且最实用,看这个网址 ...
- Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013
折腾了三天终于配置成功了,在此写下编译配置的全部步骤和遇到的很多坑. 整体介绍: OpenCV 中 CUDA 实现的函数还不是太多,使用前要在OpenCV的官网上确认以下你想要的功能是否已经实现,否则 ...
- [转]VS2015+OpenCV3.3 GPU模块和opencv_contrib模块的编译以及采用CMake编译opencv_contrib时提示“No extra modules found in folder”问题的解决方案
据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边.但是这里边有很多我们经常要用的算法 ...
随机推荐
- ceph简单了解
ceph简介 ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能.可靠性和可扩展性. 目前已经得到众多云计算厂商的支持并被广泛应用.RedHat及OpenStack都可以与Ceph整合以支持 ...
- REPuter注释叶绿体重复序列
REPuter可注释叶绿体重复序列,包括4种类型,Forward(F), Reverse (R), Complement (C), Palindromic (P). REPuter 是可在线注释, 详 ...
- tcp可靠传输的机制有哪些(面试必看
一.综述 1.确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传. 2.数据校验 3.数据合理分片和排序: UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层 ...
- mysql 索引的注意事项
mysql 无法使用索引的查询 索引是什么,为什么要用索引,索引使用的时候要注意什么,那些情况下索引无法起作用. 1,索引是什么 mysql的索引也是一张表,并且是一个有序的表,主要记录了需要索引的数 ...
- mysql 除法运算保留小数的用法
说明:刚开始用的round(值1/值2*100,1) 结果没出效果,才搜到decimal函数 在工作中会遇到计算小数而且需要显现出小数末尾的0,我们会用到DECIMAL这个函数,这是一个函数非常强悍: ...
- Linux系统时钟与硬件时钟
linux系统有两个时钟:一个是由主板电池驱动的硬件时钟(Real Time Clock),也叫做RTC或者叫CMOS时钟.当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的: ...
- Android 高级UI组件(三)
一.popupWindow 1.AlertDialog和PopupWindow最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManage ...
- 【Linux】【Services】【VersionControl】git-daemon, httpd, mysql搭建带认证的gitserver
1. 简介: 比较低端的gitserver,使用centos自带的git-daemon搭建gitserver,使用httpd做上传和下载,利用mod_auth_mysql做认证 2. 环境 # Apa ...
- DBMS_RANDOM包详解
DBMS_RAMDOM包中一共包含9个存储过程和函数,其中6个是现在用的,3个是已经过时的: 当前版本11gR2 每次生成一个随机数oracle都会初始化一个种子,也可以调用seed过程自己初始化一个 ...
- Linux下查看JDK安装路径
在安装好Git.JDK和jenkins之后,就需要在jenkins中进行对应的设置,比如在全局工具配置模块,需要写入JDK的安装路径. 这篇博客,介绍几种常见的在Linux中查看JDK路径的方法... ...