目的是利用vscode及相关插件编译多个C++文件。

我已经装好cmake和mingw并且将它们的路径添加到系统变量path中了。

vscode装上如下几个插件:

点击vscode左上角   文件->首选项->设置,弹出如下窗口:

cmake tools里头有一项cmake.preferredGenerators要根据编译器修改成对应的值,mingw对应的是MinGW Makefiles

下面一项cmake要配置cmake的安装路径,我的是C:\\Program Files\\CMake\\bin\\cmake

随便新建个文件夹新建个CMakeLists.txt,先确认一下不编译文件时vscode和cmake能不能正常工作,

CMakeLists.txt内容如下:

cmake_minimum_required(VERSION 2.6)

# avoid some cmake warnings
IF(POLICY CMP0026)
CMAKE_POLICY(SET CMP0026 OLD)
ENDIF() SET(test_message "test vscode and cmake")
MESSAGE (STATUS "test_message: ${test_message}")

这个时候插件会自动生成一个build文件夹

然后点击左下角的,弹出一个

随便点一个debug,会弹出一堆和执行 cmake . 一样的信息来,也能成功打印test_message。

说明vscode和cmake可以正常工作。再点一下左下角的build,就make了。得到提示信息

[vscode] C:\Program Files\CMake\bin\cmake exited with return code 0
说明make成功。生成的东西全在build文件夹下。
====================================================
现在把源文件添加进去:
main.cpp
 #include<iostream>

 #include"mathfunc.h"

 using namespace std;

 int main(){
double a,c; cout << "enter a and b: " << endl;
cin >> a >> c;
cout << "a*b*b = " << scjfunc(a,c) << endl; system("pause");
return ;
}
mathfunc.cpp
 #include"mathfunc.h"

 double scjfunc(double a, double b)
{
return a*b*b;
}
mathfunc.h
 #ifndef MATHFUNC_H
#define MATHFUNC_H double scjfunc(double a, double b); #endif
CMakeLists.txt
 cmake_minimum_required(VERSION 2.8)

 project(demo)

 aux_source_directory(. DIR_SRCS)
add_executable(demo ${DIR_SRCS})

和没添加源文件时的操作一样就可以生成exe了。不会自动运行exe。

要debug的话,在CMake Tools configuration中找到cmake.debugConfig,设置成:

  "cmake.debugConfig": {
"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
"externalConsole": true,
"stopAtEntry": false
}

然后点击vscode下面的可以调试,画面如下:

目的达成。

vscode, cmake编译多个C++文件的更多相关文章

  1. centos 7 vscode cmake 编译c++工程

    一.环境说明 1)gcc/g++  cmake安装建议 gcc/g++内核自带的即可,如果需要新的自行安装, cmake也一样,如有需要新的版本自行安装. 2)vscode安装插件 必要的插件c/c+ ...

  2. windows10下vscode+cmake编译Qt5代码

    概述 本文演示环境: windows10 cmake version:3.18 qt version: 5.14 vscode version: 1.54.1 本文演示环境基于在线模式, 离线使用VS ...

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

    概述 本文将介绍 VScode + cmake 在 windows10上编译c++代码 前提: 我之前已经安装过VS2017, 故 编译将采用cl.exe. 开始之前 本文演示环境基于 windows ...

  4. windows10下vscode+cmake编译Qt5代码(2)

    概述 本文依赖 前文 本文将介绍使用cmake语法屏蔽运行Qt exe的cmd窗口 解决办法 配置VS项目属性, 缺点: cmake重新 configure后,项目属性会重置,再次运行还将出现cmd弹 ...

  5. [转]一个CMake编译问题的解决过程

    问题的提出 公司的一个power-pc平台的产品,有个协议进行了修改,过程中出现了比较奇怪的情况.直接将修改后的动态库下载到设备上(原始设备是有文件系统和其他的依赖文件的,相当于部分更新应用),设备和 ...

  6. linux 下 VSCODE 使用CMake编译STM32程序

    项目在做什么 项目地址 本项目是为了研究MCU在linux下开发而做的 --build 存放cmake编译生成的文件 --cmake 存放cmake编译时会用到的文件,比如工具链检查.编译选项等 -- ...

  7. 解决vscode可以编译通过c++项目,但头文件有红色波浪线的问题

    解决vscode可以编译通过c++项目,但头文件有红色波浪线的问题 一.问题描述 我是在Ubuntu 16.04的环境下,用vscode写代码的,一般不使用vscode自带的编译环境,而是用cmake ...

  8. Cmake知识----编写CMakeLists.txt文件编译C/C++程序

    1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...

  9. ubuntu下,VSCode采用cmake编译C++工程

    首先在VSCode中下载CMake和CMake Tools两个插件. 选中CMake Tools,可以看到在VSCode中如何使用cmake编译C++工程的教程. 官网教程 最重要且最实用,看这个网址 ...

随机推荐

  1. CSS样式表与HTML结合的方法

    从此王子和公主幸福的生活在了一起:) 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文 ...

  2. CentOS7下swap分区创建(添加),删除以及相关配置

    在添加swap分区之前我们可以了解下当前系统swap是否存在以及使用情况,可用: 1. free –h 或 swapon –s 了解硬盘使用情况(一般/dev/vda1为挂载硬盘): 1. df –h ...

  3. Django框架(七)

    15 Django组件-中间件 中间件 中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的 ...

  4. Jumpserver跳板机的搭建和部署

    1.需要搭云yum仓库wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 2. ...

  5. nginx搭建以及其配置文件

    nginx搭建: 参考link:https://blog.csdn.net/wxyjuly/article/details/79443432 nginx配置文件详解: 参考link:https://w ...

  6. Linux磁盘空间满了的排查与解决思路

    block正常满 (磁盘实际不足)inode 满 大量的小文件block 满 文件没有被彻底删除(硬链接数0 进程调用数不为0) 解放方法: 1 查看df -h 磁盘使用量根据占用量大小逐步逐步排查 ...

  7. java中的线程问题(三)——继承Thread VS 实现Runnable的区别

    从java的设计来看,通过继承Thread或者实现Runnable接口来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thread类本身就实现了Runnable接口,如果一定要说它们有什么区别, ...

  8. 奇异值分解(SVD)与在降维中的应用

    奇异值分解(Singular Value Decomposition,SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是很多机器 ...

  9. flex 1与flex auto

    flex意为"弹性布局" 这次主要探究的是flex:1与flex:auto的区别,flex是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 ...

  10. 使用Ajax+jQuery来实现前端收到的数据在console上显示+简单的主页设计与bootstrap插件实现图片轮播

    1.实现前端输入的数据在console上显示 上一篇是解决了在前端的输入信息在cygwin上显示,这次要给前台们能看见的数据,因为数据库里插入的数据少,所以写的语句翻来覆去就那几个词,emmm···当 ...