linux系统下vscode portable版本的c++/Cmake环境搭建001

2024-02-12 01:04

本文主要是介绍linux系统下vscode portable版本的c++/Cmake环境搭建001,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

linux系统下vscode portable版本的Cmake环境搭建

  • vscode portable 安装
  • 安装基本工具
    • 安装 build-essential
    • 安装 CMake
  • final script code
  • 安装插件
    • CMake Tools & cmake
    • C/C++ Extension Pack
  • Test
    • settings,json
    • CMakeLists.txt
    • 调试和运行工具
  • CG

  • 目的:希望在获得一个新的系统之后,以最简便的方式搭配一个能够运行与调试c++的编程环境

vscode portable 安装

  • https://code.visualstudio.com/Download

  • download code-stable-x64.tar.gz from https://code.visualstudio.com/docs/?dv=linux64

// 检测VSCode-linux-x64文件夹是否存在,否则解压code-stable-x64.tar.gz
// vi install_vscode.sh#!/bin/bash
# 检查VSCode-linux-x64文件夹是否存在
vscode_folder="VSCode-linux-x64"if [ -d "$vscode_folder" ]; thenecho "VSCode-linux-x64 folder already exists."
else# 如果文件夹不存在,则解压code-stable-x64.tar.gztar -xzvf code-stable-x64*.tar.gz# 或者使用以下命令解压(根据实际情况选择)# tar -xzvf code-stable-x64.tar.gz -C /your/installation/pathecho "VSCode-linux-x64 folder extracted successfully."
fi
  • bash ./install_vscode.sh
    在这里插入图片描述

安装基本工具

安装 build-essential

sudo apt-get update
sudo apt-get install -y build-essential # build-essential 是一个包,它包含了构建软件所需的基本工具,包括 gcc-9,libstdc++-9-dev,g++-9,make (4.2.1-1.2)
  • 我的系统中默认安装了gdb
kubuntu@kubuntu:/media/kubuntu/系统$ gdb -v
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
kubuntu@kubuntu:/media/kubuntu/系统$ cmake -version
Command 'cmake' not found, but can be installed with:
sudo apt install cmake
kubuntu@kubuntu:/media/kubuntu/系统$ g++ -v
Command 'g++' not found, but can be installed with:
sudo apt install g++
kubuntu@kubuntu:/media/kubuntu/系统$ gcc -v
Command 'gcc' not found, but can be installed with:
sudo apt install gcc

安装 CMake

  • 去https://github.com/Kitware/CMake/releases/下载需要版本的命令文件,比如wget https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-linux-x86_64.sh
// vi install_cmake.sh#!/bin/bash# 检测是否存在CMake命令,使用 command -v 命令来检查是否存在 cmake 命令。如果存在,command -v 会返回 0,否则返回非零值。
if command -v cmake &> /dev/null; thenecho "CMake is already installed. Version: $(cmake --version | head -n1)"
elseecho "CMake is not installed on this system."./cmake-3.26.3-linux-x86_64.sh --skip-licence --prefix=/usr# 将CMake添加到PATH环境变量# 暂时添加:export PATH="/usr/cmake-3.26.3-linux-x86_64/bin:$PATH"echo 'export PATH="/usr/cmake-3.26.3-linux-x86_64/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc
fi

在这里插入图片描述

final script code

// vi final_install_vscode.sh#!/bin/bash
# 检查VSCode-linux-x64文件夹是否存在
vscode_folder="VSCode-linux-x64"if [ -d "$vscode_folder" ]; thenecho "VSCode-linux-x64 folder already exists."
else# 如果文件夹不存在,则解压code-stable-x64.tar.gztar -xzvf code-stable-x64*.tar.gz# 或者使用以下命令解压(根据实际情况选择)# tar -xzvf code-stable-x64.tar.gz -C /your/installation/pathecho "VSCode-linux-x64 folder extracted successfully."
fisudo apt-get update
sudo apt-get install -y build-essential# 检测是否存在CMake命令,使用 command -v 命令来检查是否存在 cmake 命令。如果存在,command -v 会返回 0,否则返回非零值。
if command -v cmake &> /dev/null; thenecho "CMake is already installed. Version: $(cmake --version | head -n1)"
elseecho "CMake is not installed on this system."# 暂时添加:export PATH="/usr/cmake-3.26.3-linux-x86_64/bin:$PATH"./cmake-3.26.3-linux-x86_64.sh --skip-licence --prefix=/usrecho " go ro run final_add_path.sh "
fi
// vi final_add_path.sh#!/bin/bash
echo $PATH
echo 'export PATH="/usr/cmake-3.26.3-linux-x86_64/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
echo $PATH

安装插件

CMake Tools & cmake

在这里插入图片描述

在这里插入图片描述

C/C++ Extension Pack

在这里插入图片描述

Test

settings,json

  • 只需要简单配置settings,json即可
// settings,json
{"files.associations": {"iostream": "cpp"},"cmake.cmakePath": "/usr/cmake-3.26.3-linux-x86_64/bin/cmake"
}

CMakeLists.txt

  • 可以直接使用工具创建: F1->CMAKE QUICK START
    在这里插入图片描述
cmake_minimum_required(VERSION 3.0.0)
project(TEST VERSION 0.1.0 LANGUAGES C CXX)include(CTest)
enable_testing()add_executable(TEST main.cpp)set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
  • 或者手动创建
cmake_minimum_required(VERSION 3.0)
project(my_project)# 添加可执行文件
add_executable(my_project main.cpp)

调试和运行工具

  • 只需要左下角的几个按键即可
    在这里插入图片描述
  • 调试效果:在这里插入图片描述

CG

  • 如果按照以往的F5调试方案,会报错:The “cmake” debug type with “cmakeDebugType” set to “script” requires you to define a “scriptPath” that points to a CMake script. 需要将 launch.json 进行如下配置:
{"version": "0.2.0","configurations": [{"name": "使用 CMake 调试","type": "cmake","request": "launch","program": "${workspaceFolder}/build/your_executable",  // 替换为你的可执行文件的路径"args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"preLaunchTask": "cmake","setupCommands": [{"description": "启用 GDB 的漂亮打印","text": "-enable-pretty-printing","ignoreFailures": true}],"cmake": {"cacheVariables": {"CMAKE_BUILD_TYPE": "Debug"},"buildDirectory": "${workspaceFolder}/build"},"cmakeDebugType": "script","scriptPath": "${workspaceFolder}/.vscode/cmake-debugger.py"  // 替换为你的 CMake 调试脚本的路径}]
}

这篇关于linux系统下vscode portable版本的c++/Cmake环境搭建001的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701276

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

C++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif