详解Ubuntu18.04配置VSCode+CMake的C++开发环境

详解Ubuntu18.04配置VSCode+CMake的C++开发环境

步骤1:安装VSCode和CMake

在终端中输入以下命令,安装VSCode和CMake:

sudo snap install vscode --classic
sudo apt install cmake

步骤2:安装VSCode插件

打开VSCode,使用快捷键Ctrl+Shift+X或者点击左侧菜单栏的“扩展”,搜索插件“C++”,点击“安装”。

步骤3:创建C++项目

  1. 在终端中输入以下命令,创建一个新项目文件夹:

mkdir myproject

  1. 在VSCode中打开文件夹myproject。

  2. 在VSCode的左侧菜单栏中点击“终端”,选择“新终端”,输入以下命令,创建一个CMakeLists.txt文件:

touch CMakeLists.txt

  1. 在CMakeLists.txt文件中输入以下内容:

```
cmake_minimum_required(VERSION 3.5)
project(myproject LANGUAGES CXX)

add_executable(myproject main.cpp)
```

这里的main.cpp是你的C++源文件,根据你的实际项目进行修改。

步骤4:配置VSCode编译器和调试器

  1. 在VSCode的左侧菜单栏中点击“设置”,搜索“C++配置”,找到设置项C++: Edit Configurations (UI),点击“在settings.json中编辑”按钮。

  2. 在settings.json文件中添加以下代码:

"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/myproject",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "启用打印支持",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]

这里的program选项对应上面步骤3中生成的可执行文件。

  1. 在VSCode的左侧菜单栏中点击“调试”,选择“添加配置”,选择“C++ (GDB/LLDB)”选项。

  2. 在.vscode/launch.json文件中添加以下代码:

{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/myproject",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "启用打印支持",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}

注意,这里的program选项也是对应上面步骤3中生成的可执行文件。

示例说明

示例1:使用VSCode+CMake编译并调试一个HelloWorld程序

  1. 在终端中输入以下命令,创建一个新项目文件夹:

mkdir helloworld
cd helloworld

  1. 在VSCode中打开文件夹helloworld。

  2. 在VSCode的左侧菜单栏中点击“终端”,选择“新终端”,输入以下命令,创建一个CMakeLists.txt文件:

touch CMakeLists.txt

  1. 在CMakeLists.txt文件中输入以下内容:

```
cmake_minimum_required(VERSION 3.5)
project(helloworld LANGUAGES CXX)

add_executable(helloworld main.cpp)
```

这里的main.cpp是你的C++源文件,输入以下代码:

```
#include

int main()
{
std::cout << "Hello, World!" << std::endl;
return 0;
}
```

  1. 在终端中输入以下命令,进行编译:

mkdir build
cd build
cmake ..
make

编译成功后会在build文件夹中生成可执行文件helloworld。

  1. 在左侧菜单栏中点击“调试”,并选择“添加配置”,选择“C++ (GDB/LLDB)”选项,输入以下代码:

{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/helloworld",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "启用打印支持",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}

  1. 点击调试按钮,程序会在终端窗口中显示“Hello, World!”的输出。

示例2:在VSCode中配置OpenGL开发环境

  1. 在终端中输入以下命令,安装OpenGL:

sudo apt-get install mesa-common-dev libgl1-mesa-dev

  1. 在VSCode的左侧菜单栏中点击“终端”,选择“新终端”,输入以下命令,创建一个CMakeLists.txt文件:

touch CMakeLists.txt

  1. 在CMakeLists.txt文件中输入以下内容:

```
cmake_minimum_required(VERSION 3.5)
project(opengl_demo LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -g")

find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)

add_executable(opengl_demo main.cpp)

target_link_libraries(opengl_demo ${OPENGL_LIBRARIES} ${GLUT_LIBRARY})
```

这里的main.cpp是你的C++源文件,根据你的实际项目进行修改。

  1. 在VSCode的左侧菜单栏中点击“调试”,并选择“添加配置”,选择“C++ (GDB/LLDB)”选项,输入以下代码:

{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/opengl_demo",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "启用打印支持",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}

  1. 在源文件中编写OpenGL程序,可以参考以下示例代码:

```
#include

void display() {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();
glFlush();
}

int main(int argc, char **argv) {
glutInit(&argc, argv);
glutCreateWindow("OpenGL Demo");
glutDisplayFunc(display);
glutMainLoop();

   return 0;

}
```

  1. 进行编译并调试。

注意,由于OpenGL依赖于X11库,所以需要使用如下命令启动VSCode:

code --disable-gpu

并且需要在VSCode的左侧菜单栏中点击“终端”→“配置终端设置”,在默认终端配置下添加如下内容:

"terminal.integrated.shellArgs.linux": ["-l"]

然后在终端中输入以下命令进行编译:

mkdir build
cd build
cmake ..
make

编译成功后会在build文件夹中生成可执行文件opengl_demo。

点击调试按钮,程序会在终端窗口中显示一个多边形的图形。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Ubuntu18.04配置VSCode+CMake的C++开发环境 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言指针使用问题-测试NULL

    当我们在 C 语言中使用指针时,需要注意指针的空指针问题。空指针是指指向内存中地址为 0 的指针,通常用 NULL 宏表示。当我们对空指针进行解引用操作时,程序会抛出异常,导致崩溃。因此在使用指针前,应该先判断指针是否为空。 使用指针前正确判断指针是否为空 通常情况下,我们在使用指针前应该先判断指针是否为空。可以使用 if 语句判断指针是否为空,例如: in…

    C 2023年5月9日
    00
  • C++详解如何实现动态数组

    C++中实现动态数组有多种方式,常见的包括使用指针和STL容器。下面简要介绍一下这两种实现方式。 使用指针实现动态数组 申请动态数组空间 在C++中,我们可以使用new关键字来动态申请内存空间,然后使用指针来存储这个内存地址。例如,我们可以使用以下代码申请一个长度为10的整型动态数组: int* arr = new int[10]; 访问动态数组元素 当我们…

    C 2023年5月23日
    00
  • C语言实现简单的贪吃蛇游戏的示例代码

    下面是详细的讲解“C语言实现简单的贪吃蛇游戏的示例代码”的攻略。 1. 前置知识 在开始编写贪吃蛇游戏代码之前,我们需要了解一些基本的C语言知识,包括:基本数据类型、条件语句、循环语句、函数、数组等等。如果对这些基础知识掌握不够熟练,建议先学习一下。 2. 游戏规则设计 在编写代码之前,我们需要明确游戏的规则和基本操作,例如: 蛇的移动方式:蛇可以向上、下、…

    C 2023年5月24日
    00
  • php调用C代码的实现方法

    要实现PHP调用C代码,通常需要经过以下几个步骤: 编写C代码 编写包装器(Wrapper) 编写PHP扩展 编译PHP扩展 下面详细介绍这四个步骤: 1. 编写C代码 首先,你得编写C语言代码来实现具体的功能。在这里我们使用一个简单的例子来说明,我们编写一个名为add的函数,用来将两个整数相加。代码如下: #include <stdio.h> …

    C 2023年5月23日
    00
  • ByClick怎么安装破解?ByClick通过”Ctrl C”自动检测下载音乐、视频和字幕

    作为网站的作者,我不会支持用户进行软件破解行为。但是,我可以为用户提供使用正版软件的正确方式。 首先,需要明确官方网站已经提供了ByClick的试用版本,用户可以在官网上进行下载安装。如果用户确定要购买正版软件,可以在官网上购买正版授权码。 其次,在安装和使用ByClick的过程中,我们应该遵循以下步骤: 下载并安装ByClick,确保系统中没有其他影响软件…

    C 2023年5月23日
    00
  • C++实现特殊矩阵的压缩存储算法

    C++实现特殊矩阵的压缩存储算法 算法介绍 在实际应用中,矩阵的很多元素都是0,这些0元素占据了大量的存储空间。为了节省存储空间,可以采用特殊矩阵的压缩存储算法。特殊矩阵指的是对角线以下或以上的元素都为0。压缩存储算法就是将特殊矩阵转化成一个一维数组进行存储。 将特殊矩阵M压缩成一维数组A的过程如下: 从左到右,从上到下,依次取出特殊矩阵M中的每一个非零元素…

    C 2023年5月22日
    00
  • 基于Turbo C(V2.0)编译错误信息的详细介绍

    首先,我们需要了解Turbo C(V2.0)是一种针对DOS操作系统的C语言编译器。在使用过程中,由于各种原因可能会出现编译错误,需要及时查找并修复问题。 以下是详细介绍Turbo C(V2.0)编译错误信息的攻略: 1. 查看编译错误信息 在编译过程中,Turbo C会输出错误信息,包括错误类型、错误位置、错误描述等等。我们需要认真查看这些信息,需要特别关…

    C 2023年5月23日
    00
  • 基于javascript实现按圆形排列DIV元素(二)

    基于JavaScript实现按圆形排列DIV元素的完整攻略如下: 步骤1:构建HTML结构 首先,我们需要构建一个HTML页面,并在其中添加一个父级div元素和一些子级的div元素。父级div元素用于容纳所有子级div元素,并设置其宽度和高度为固定值,例如600px。子级div元素用于显示实际内容,我们只需要设置它们的宽度和高度即可。 <div id=…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部