前言

  • 目的:希望在获得一个新的系统之后,以最简便的方式搭配一个能够运行与调试c++的编程环境
  • 做这个系列原因也很简单,我之前的配置如下:
  • A电脑:我的A电脑本机安装的是windows系统,然后在此电脑上又安装了Kubuntu的U盘系统(就是拿一个移动硬盘作为系统安装盘),然后通过磁盘按扇区克隆的方式又克隆了几个备份的磁盘,这样即使一个磁盘坏掉,我仍然有其他系统作为备份使用。
  • B移动硬盘:有几个文件夹,文件主要按照文件的应用类型进行分类存储,我把自己的关键代码等遗迹重要的数据以文本格式进行存储,并进行了多个版本的备份,但是其他二级重要的数据散乱的存储在多个文件夹,其中C文件夹保存着我的历史代码、系统镜像、软件安装包(其中包括磁盘恢复软件)等
  • B-1,B-2,B-3,SSK移动硬盘:均为B移动硬盘的复制,但是因为后续使用过程中写入了不同的代码,又因为个人没有及时进行同步(硬盘躲起来手动同步真的好麻烦),所以进行了分化,B-2和B-3用于了不同了任务。SSK中为最新数据,B-1为近期数据但是没有SSK近。
  • 但是前两天B移动硬盘C文件夹突然打不开了,我马上进行了数据恢复,但是由于没有用于存储恢复数据的空间,出于物理结构的考虑,准备将SSK作为从软件中恢复得到数据的接收盘,所以我将SSK的数据移动到了B-1,然后将数据移动到了SSK。然后,我准备给文件夹坏掉的那个移动硬盘装一个kali linux系统,结果安装过程中出现了错误(我选错了安装盘,安装时没有检测出B移动硬盘),把电脑本机的windows系统覆盖了(这个window系统上没有重要的数据),上边的linux引导好像也坏掉了,然后我的B-1,B-2,B-3等这些系统都没办法用了(我也进行了恢复,尝试了各种方法,最后只能恢复到安全模式下的命令行界面),这让我有点无奈(好在数据都还在,但是系统没了)。另一件事情是因为坏掉的那个盘的数据有几百G,我只选择了部分数据转移到SSK中,最重要的肯定是转移过去了,但是其他次要的不知道是否转移完全了。
  • 所以在本系列中,我打算这样安排我的系统
  • 只使用live系统:插上U盘就进入系统安装界面,然后选择试用,也有一些linux系统提供了live镜像(我也找到了做USB系统且能持久化的相关教程,但先准备不去尝试。)
  • 20240403 已经尝试过了,以上的方法有临时空间限制(3个G左右,主要一些应用手动安装比命令安装麻烦太多,没好办法解决),还是尝试一下live系统吧。
  • 将开发软件以安装文件+命令行配置的方式进行存储,在需要编程时进行即时安装,一般来说,这样就可以在任何电脑上,任何系统上快速运行自己的开发环境
  • 注:另外需要做的一件事就是对文件进行分级存储,让我能知道哪些文件是需要备份起来,如果文件夹坏掉可以知道之前有哪些重要文件
  • 如果有长期不需要频繁读取的数据,例如存档文件、备份数据等,通常使用机械硬盘会更合适。机械硬盘对于长期存储数据来说可能更持久。尽管机械硬盘有运动部件,但在不受外界干扰的情况下,它们可以长期保存数据而不会出现数据丢失或损坏的情况。

vscode portable 安装

// 检测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" ]; then
    echo "VSCode-linux-x64 folder already exists."
else
    # 如果文件夹不存在,则解压code-stable-x64.tar.gz
    tar -xzvf code-stable-x64*.tar.gz
    
    # 或者使用以下命令解压(根据实际情况选择)
    # tar -xzvf code-stable-x64.tar.gz -C /your/installation/path
    
    echo "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

// vi install_cmake.sh

#!/bin/bash

# 检测是否存在CMake命令,使用 command -v 命令来检查是否存在 cmake 命令。如果存在,command -v 会返回 0,否则返回非零值。
if command -v cmake &> /dev/null; then
    echo "CMake is already installed. Version: $(cmake --version | head -n1)"
else
    echo "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"' >> ~/.bashrc
	source ~/.bashrc
fi

在这里插入图片描述

final script code

// vi final_install_vscode.sh

#!/bin/bash
# 检查VSCode-linux-x64文件夹是否存在
vscode_folder="VSCode-linux-x64"

if [ -d "$vscode_folder" ]; then
    echo "VSCode-linux-x64 folder already exists."
else
    # 如果文件夹不存在,则解压code-stable-x64.tar.gz
    tar -xzvf code-stable-x64*.tar.gz
    
    # 或者使用以下命令解压(根据实际情况选择)
    # tar -xzvf code-stable-x64.tar.gz -C /your/installation/path
    
    echo "VSCode-linux-x64 folder extracted successfully."
fi

sudo apt-get update
sudo apt-get install -y build-essential

# 检测是否存在CMake命令,使用 command -v 命令来检查是否存在 cmake 命令。如果存在,command -v 会返回 0,否则返回非零值。
if command -v cmake &> /dev/null; then
    echo "CMake is already installed. Version: $(cmake --version | head -n1)"
else
    echo "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=/usr
     echo " 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)

调试和运行工具

  • 只需要左下角的几个按键即可(可以通过右键状态栏关闭和打开状态来看哪些时CMAKE TOOLS的按键)
    在这里插入图片描述
  • 调试效果:在这里插入图片描述

CG

{
  "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 调试脚本的路径
    }
  ]
}
  • wsl clion : https://www.jetbrains.com/help/clion/how-to-use-wsl-development-environment-in-product.html#wsl-tooclhain
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐