目的是利用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. 【C/C++】泛型栈

    用 C 语言实现泛型栈 mystack.h #ifndef __MYSTACK_H__ #define __MYSTACK_H__ #include <assert.h> // C sty ...

  2. decode encode

    https://blog.csdn.net/crylearner/article/details/38521685,python常用的十进制.16进制.字符串.字节串之间的转换

  3. mysql sql文件批量处理

    简单动作复杂化,导致处理文件误入坑, 数据库拷贝,备份还原是每个面向对象的开发人员避免不了的动作,在数据库使用中,习惯性的使用第三方数据库管理软件,最近需要做数据库迁移,导出的批量sql文件不知如何区 ...

  4. String Permutation

    Given two strings, write a method to decide if one is a permutation of the other. Example abcd is a ...

  5. 隐藏WORDPRESS账户登录错误信息

    将下面的脚本添加到当前主题的functions.php文件中. function no_wordpress_errors(){  return 'Something is wrong!';}add_f ...

  6. XenServer7.6命令行导出导入虚拟机(迁移)

    一:命令行方法导出虚拟机(先关闭虚拟机) 1.1:打印虚拟机列表 xe vm-list uuid ( RO) : 43dfac04-515e-7769-b2d2-444d4b7cb198 name-l ...

  7. Codeforces Round #207 (Div. 1) A. Knight Tournament (线段树离线)

    题目:http://codeforces.com/problemset/problem/356/A 题意:首先给你n,m,代表有n个人还有m次描述,下面m行,每行l,r,x,代表l到r这个区间都被x所 ...

  8. 关于Excel导出实例(适合新手,比较详细)

    需要源代码的可以加我微信好友gqljxg1514 1,首先配置依赖pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0&q ...

  9. 第二章:深入分析java I/O的工作机制

    .2.1 java的I/O类库的基本架构 I/O的机器获取和交换信息的主要渠道,在当今数据大爆炸时代,I/O问题尤其突出,很容易成为一个性能瓶颈,Java在I/O上也一直做持续的优化,现在也引入了NI ...

  10. wpf-x命名空间-Markup Extension(标记扩展)

    1.x:type 用于前端类型声明 与C#  代码 Type类似 2.x:Null 代表Null 某些时候需要显示的为一些值设置为空   前端为 x:Null   C# 中 为 Null 3.x:ar ...