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

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

本文将会介绍如何在Ubuntu 18.04配置VSCode和CMake的C++开发环境。以下是具体的步骤:

步骤1:安装必要的软件包

打开终端,使用以下命令来安装必要的软件包:

sudo apt-get update
sudo apt-get install build-essential gdb cmake

步骤2:安装VSCode

在Ubuntu 18.04中,您可以使用以下命令来安装VSCode:

sudo snap install --classic code

步骤3:安装C/C++插件

安装完VSCode之后,需要安装C/C++插件,该插件提供了C++开发所需的工具和功能。可以通过以下步骤安装C/C++插件:

  1. 打开VSCode
  2. 点击左侧的Extensions图标,搜索C/C++插件
  3. 点击安装按钮,等待插件安装完成

步骤4:安装CMake插件

在VSCode内安装CMake插件,该插件提供CMake语法高亮、调试和构建支持。您可以通过以下步骤安装CMake插件:

  1. 打开VSCode
  2. 点击左侧的Extensions图标,搜索CMake Tools插件
  3. 点击安装按钮,等待插件安装完成

步骤5:创建C++项目

您现在可以在VSCode内创建C++项目了。您可以通过以下步骤创建一个简单的C++项目:

  1. 打开VSCode
  2. 点击File->Open Folder
  3. 选择一个文件夹来存储您的C++项目
  4. 点击左侧的Explorer图标,右键单击文件夹并选择“New File”
  5. 输入“main.cpp”作为文件名,并输入以下内容:
#include <iostream>

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

步骤6:配置CMake

接下来需要在项目文件夹中创建一个CMakeLists.txt文件来配置CMake。在文件夹中右键单击并选择“New File”。输入“CMakeLists.txt”作为文件名,并输入以下内容:

cmake_minimum_required (VERSION 3.5)

project (hello_world)

add_executable (hello_world main.cpp)

这告诉CMake创建一个名为“hello_world”的可执行文件,并将“main.cpp”文件添加到该可执行文件中。

步骤7:使用CMake生成Makefile

在终端中打开项目文件夹,并键入以下命令:

mkdir build && cd build
cmake ..

这将在build文件夹中生成Makefile文件。

步骤8:编译代码

在终端中,键入以下命令来编译代码:

make

步骤9:调试代码

在VSCode中,可以通过以下 steps 来调试C++代码:

  1. 点击左侧的Debug图标
  2. 点击左上角的“create a launch.json file”链接
  3. 选择C++作为环境
  4. 在配置文件中添加以下代码:
{
    "name": "g++ - Build and debug active file",
    "type": "cppdbg",
    "request": "launch",
    "program": "${workspaceRoot}/build/hello_world",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${workspaceRoot}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "miDebuggerPath": "gdb"
}
  1. 现在,您可以点击左侧的Debug按钮来开始调试您的代码。

示例1:在Ubuntu 18.04下使用VSCode+CMake开发C++程序

以下是一个简单的示例,演示了如何在Ubuntu 18.04下使用VSCode+CMake开发和调试C++程序。

  1. 创建名为“hello_world”的文件夹。
  2. 在文件夹内创建一个名为“main.cpp”的文件,添加以下内容:
#include <iostream>

int main(){
    std::cout << "Hello World!" << std::endl;
    return 0;
}
  1. 在文件夹内创建一个CMakeLists.txt文件,并添加以下内容:
cmake_minimum_required (VERSION 3.5)

project (hello_world)

add_executable (hello_world main.cpp)
  1. 打开终端,进入该文件夹并输入以下命令:
mkdir build && cd build
cmake ..
make
  1. 点击左侧的Debug按钮来开始调试您的代码,并输入以下代码:
#include <iostream>

int main(){
    int i = 0;
    while(true){
        std::cout << "Hello World!" << std::endl;
        i++;
        if(i > 10){
            break;
        }
    }
    return 0;
}
  1. 完成后,您可以看到程序在控制台中输出“Hello World!”10次。

示例2:在Ubuntu 18.04下使用VSCode+CMake开发OpenGL程序

以下是一个简单的示例,演示了如何在Ubuntu 18.04下使用VSCode+CMake开发和调试OpenGL程序。

  1. 安装OpenGL和GLFW:
sudo apt-get install libgl1-mesa-dev libglfw3-dev
  1. 创建名为“opengl”的文件夹。
  2. 在文件夹内创建一个名为“main.cpp”的文件,添加以下内容:
#include <iostream>
#include <GLFW/glfw3.h>

int main(){
    if (!glfwInit()){
        std::cout << "Failed to initialize GLFW\n" << std::endl;
        return -1;
    }

    GLFWwindow* window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    if (!window){
        std::cout << "Failed to create GLFW window\n" << std::endl;
        return -1;
    }

    glfwMakeContextCurrent(window);

    while (!glfwWindowShouldClose(window)){
        glClear(GL_COLOR_BUFFER_BIT);

        glBegin(GL_TRIANGLES);
        glVertex2f(-0.5f, -0.5f);
        glVertex2f(0.0f, 0.5f);
        glVertex2f(0.5f, -0.5f);
        glEnd();

        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwTerminate();

    return 0;
}
  1. 在文件夹内创建一个CMakeLists.txt文件,并添加以下内容:
cmake_minimum_required (VERSION 3.5)

project (opengl)

add_executable (opengl main.cpp)

find_package (OpenGL REQUIRED)
target_link_libraries (opengl ${OPENGL_LIBRARY})

find_package (glfw3 3.3 REQUIRED)
target_link_libraries (opengl glfw)
  1. 打开终端,进入该文件夹并输入以下命令:
mkdir build && cd build
cmake ..
make
  1. 点击左侧的Debug按钮来开始调试您的代码,并输入以下代码:
#include <iostream>
#include <GLFW/glfw3.h>

int main(){
    if (!glfwInit()){
        std::cout << "Failed to initialize GLFW\n" << std::endl;
        return -1;
    }

    GLFWwindow* window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    if (!window){
        std::cout << "Failed to create GLFW window\n" << std::endl;
        return -1;
    }

    glfwMakeContextCurrent(window);

    while (!glfwWindowShouldClose(window)){
        glClear(GL_COLOR_BUFFER_BIT);

        glBegin(GL_TRIANGLES);
        glVertex2f(-0.5f, -0.5f);
        glVertex2f(0.0f, 0.5f);
        glVertex2f(0.5f, -0.5f);
        glEnd();

        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwTerminate();

    return 0;
}
  1. 在终端中键入以下命令来运行您的OpenGL程序:
./opengl
  1. 当程序开始执行时,您将会看到一个OpenGL窗口显示一个三角形。

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

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

相关文章

  • C 程序 检查整数是正还是负

    C程序检查整数是正还是负 程序概述 这个程序可以检查一个输入的整数是正还是负数。如果输入的整数大于0,则会输出”Positive”,否则输出”Negative”。 程序代码 #include <stdio.h> int main() { int num; printf("Enter a number: "); scanf(&q…

    C 2023年5月9日
    00
  • Java异常处理实例教程

    下面我会给您详细讲解“Java异常处理实例教程”的完整攻略。 1. 异常概述 异常是Java中的一种错误,当程序执行过程中出现错误时,会抛出异常。Java提供了一套机制,用于捕捉并处理异常,使得程序出错时不会直接崩溃而是可以做一些处理,增加程序的健壮性和可维护性。 2. 异常分类 Java中的异常可以分为两类:受检异常(Checked Exception)和…

    C 2023年5月23日
    00
  • ubuntu系统下C++调用matlab程序的方法详解

    关于在Ubuntu系统下C++调用matlab程序的方法详解,我整理了以下的攻略: 确认安装及配置 在开始调用matlab程序前,必须要确认系统已安装matlab软件及其C++编译器。同时,也需要设置matlab的环境变量来确保matlab程序能够被其他程序调用。 确认安装matlab 首先,可以在终端中输入以下命令,确认matlab是否已正确安装: mat…

    C 2023年5月23日
    00
  • C语言中程序环境和预处理的详细图文讲解

    针对“C语言中程序环境和预处理的详细图文讲解”这一主题,我会为你提供一份完整攻略。本攻略主要分两部分:程序环境和预处理。下面就分别进行详细讲解。 程序环境 什么是程序环境? 程序环境指的是程序执行的环境,包括操作系统、硬件设备等因素。C语言的程序需要在特定的环境下才能执行。 程序的执行过程 当程序运行时,它需要在内存中占用一定的空间。程序在执行过程中分为以下…

    C 2023年5月23日
    00
  • C语言中的分支循环其嵌套语句

    C语言中的分支循环语句是控制程序流程的重要工具,它们可以根据条件来执行不同的代码块,或者循环执行某段代码块。与此同时,C语言还支持分支循环语句的嵌套,这种语句结构可以更精细地控制程序流程,提高代码的效率和可维护性。下面是完整的攻略。 分支语句 if语句 if语句是最基本的分支语句,用来测试一个条件,如果满足条件就执行指定的代码块。 语法: if (条件) {…

    C 2023年5月23日
    00
  • C++ plog日志使用方法介绍

    下面是关于C++ plog日志使用方法的完整攻略。 简介 plog是一个轻量级的跨平台C++日志库,它提供了简单易用的API,支持多线程和日志回滚等特性,可以在不同的平台和操作系统上使用。plog的主要特性如下: 支持多种日志级别、多线程写入、异步/同步写入、日志滚动等 高效、轻量级的实现,使用 header-only 方式集成库 跨平台使用,支持MacOS…

    C 2023年5月22日
    00
  • Python实现复杂对象转JSON的方法示例

    下面就给出一篇详细的攻略,以帮助你理解“Python实现复杂对象转JSON的方法示例”。 简介 在Python开发中,我们经常需要将一些复杂的数据结构转换为JSON格式,便于数据的传输和存储。本文将介绍如何使用Python实现复杂对象转JSON的方法示例。 示例1:使用json.dumps()方法 在Python中,我们可以使用json模块中的dumps()…

    C 2023年5月23日
    00
  • C调用C++代码的方法步骤

    C语言是一款面向过程的语言,而C++语言是一款面向对象的语言。虽然二者有着许多相似之处,但仍然会存在一些不兼容的情况,在C中调用C++代码时也是如此。下面介绍一下C调用C++代码的方法步骤。 步骤 在C++文件中,声明被调用的函数为extern “C” #ifdef __cplusplus extern "C" { #endif // y…

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