打开一个含有CMakeLists.txt的文件夹

在.vscode要建立三个json文件才能对Cmake工程进行编译和调试,分别是c_cpp_properties.json,launch.json和tasks.json

  1. c_cpp_properties.json文件

    Ctrl+Shift+P,输入C/C++,选择C/C++: Edit Configurations(JSON)

    修改为如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools",
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
}
],
"version": 4
}
  1. launch.json文件

    choose Run > Add Configuration... and then choose C++ (GDB/LLDB).

    配置如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
// Resolved by CMake Tools:
"program": "${workspaceFolder}/build/Hello",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
  1. tasks.json是编译任务的文件,

    choose Terminal > Configure Default Build Task. A dropdown appears showing various predefined build tasks for C++ compilers. Choose C/C++: g++ build active file.



    更改为如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "make build",//编译的项目名,build
"type": "shell",
"command": "cd ./build ;cmake .. ;make",//编译命令
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "clean",
"type": "shell",
"command": "make clean", }
]
}
  1. 自己的CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(Hello)
set(CMAKE_BUILD_TYPE "Debug")
add_definitions(-std=c++11)
set(SOURCE hello.cpp)
add_executable(${PROJECT_NAME} ${SOURCE})
  1. hello.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
}
  1. ctrl+shift+B运行代码,成功。

可能存在的问题:

  1. 在刚开始打开vscode的时候,可能会自动建立build文件夹,在配置完3个文件后,把自动创建的build文件夹删除,然后再创建一个空的build文件夹,然后执行ctrl+shift+B
  2. launch.json文件创造出错,解决办法,删掉.vscode文件夹,然后关闭vscode ,重新打开,让c / c ++扩展来创建c_cpp_properties.json文件,然后再按Run > Add Configuration即可创建

vscode在UBUNTU下使用CMAKE编译的更多相关文章

  1. ubuntu下使用反编译apk,工具dex2jar和jd-gui

    ubuntu下使用反编译apk, 工具 1:通过apk-tool反编译出资源文件: http://code.google.com/p/android-apktool/ 2.首先使用dex2jar反编译 ...

  2. Ubuntu下使用gcc编译c文件,未识别cos,sin

    Ubuntu下使用gcc编译c文件,虽然我调用了math.h的头文件,但是未识别cos,sin 报错:( fft.c ) /tmp/ccwXjD8C.o: In function `fft': fft ...

  3. CentOS_5.6下使用cmake编译MySQL_5.5.11

    MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采用这种方式,网上找了一些安装方法有些地方是错的,自己整理一份 所以特地记录一下安装步骤及过程,以供参考!1 mysql 5 ...

  4. (1)Ubuntu下CloudCompare的编译

    Ubuntu下,需要提前安装openGL和Qt 为了可视化操作,使用Cmake进行编译设置 将下载的CloudCompare文件夹下的cmakeList.txt用cmake作为打开方式 Cmake设置 ...

  5. ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用

    作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...

  6. Ubuntu 下安装opencv 编译后执行找不到库

    在ubuntu下编译opencv程序后,执行报下面到错误:error while loading shared libraries: libopencv_core.so.2.4: cannot ope ...

  7. 搭建Ubuntu下c/c++编译环境【转】

    1.       安装Ubuntu. 2.       安装gcc 方法一: sudo apt-get  install  build-essential 安装完了可以执行 gcc--version的 ...

  8. CentOS_5.6下使用cmake编译MySQL_5.5.11教程

    注:资料来自网络    Centos 5.6编译安装mysql 5.5.11 2011年06月24日 星期五 05:33 MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采 ...

  9. windows下使用cmake编译zlib与libpng libjpeg

    win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/,     选择最新版本的windows版本压缩包,进行下载.     jpeg ...

  10. ubuntu下objective-c的编译和运行

    ubuntu 下编译objective-c 1.安装编译环境 sudo aptitude install build-essential gobjc gobjc++ gnustep gnustep-d ...

随机推荐

  1. 基于k8s的CI/CD的实现

    综述 首先,本篇文章所介绍的内容,已经有完整的实现,可以参考这里. 在微服务.DevOps和云平台流行的当下,使用一个高效的持续集成工具也是一个非常重要的事情.虽然市面上目前已经存在了比较成熟的自动化 ...

  2. 使用位运算优化 N 皇后问题

    使用位运算优化 N 皇后问题 作者:Grey 原文地址: 博客园:使用位运算优化 N 皇后问题 CSDN:使用位运算优化 N 皇后问题 问题描述 N 皇后问题是指在 n * n 的棋盘上要摆 n 个皇 ...

  3. 封装适用于CentOS7的MySQL离线包

    1 构建一个centos7.6.1810的docker镜像,用于下载MySQL+xtrabackup所需安装包 7.6.1810的docker镜像,低版本最小安装,会尽可能把所需的包拉齐. Docke ...

  4. Redis的数据被删除,占用内存咋还那么大?

    通过 CONFIG SET maxmemory 100mb 或者在 redis.conf 配置文件设置 maxmemory 100mb Redis 内存占用限制.当达到内存最大值值,会触发内存淘汰策略 ...

  5. 实施 GitOps 的三个关键步骤

    GitOps 是一种自动化和管理基础架构和应用程序的模型,通过许多团队已经使用的相同 DevOps 最佳实践来形成的模型,例如版本控制.代码审查和 CI/CD 流水线.在实施 DevOps 时,我们找 ...

  6. 更改jenkins插件地址为国内源地址

    1.在插件管理里替换源地址 在这个界面往下拉,可看到URL地址,将其替换为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-ce ...

  7. Django AttributeError: 'BugDeserializer' object has no attribute '_meta'

    BugDeserializer 对象中没有 '_meta' 属性,定位到调用BugDeserializer位置, 用于序列化时,将模型类对象传入instance参数 在update时,数据传入有误,更 ...

  8. Jmeter 跨线程组传参

    某种情况下需要获取到上个线程组的返回值进行测试,但线程组与线程组之间是相互独立,互不影响.若要得到上个线程组的返回值,则可通过__setProperty()函数将所提取的值设置为jmeter 内置属性 ...

  9. JavaScript:输出语法

    主要有三种,如下所示:

  10. (已转)Linux基础第七章 线程

    前言 之前讨论了进程,了解一个进程能做一件事情,如果想同时处理多件事情,那么需要多个进程,但是进程间很不方便的一点是,进程间的数据交换似乎没有那么方便.Linux提供线程功能,能在一个进程中,处理多任 ...