linux系统下vscode portable版本的Cmake环境搭建
- 前言
- [vscode portable 安装](#vscode portable 安装)
- 安装基本工具
-
- [安装 build-essential](#安装 build-essential)
- [安装 CMake](#安装 CMake)
- [final script code](#final script code)
- 安装插件
-
- [CMake Tools & cmake](#CMake Tools & cmake)
- [C/C++ Extension Pack](#C/C++ Extension Pack)
- Test
- CG
前言
- 目的:希望在获得一个新的系统之后,以最简便的方式搭配一个能够运行与调试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系统且能持久化的相关教程,但先准备不去尝试)
- 将开发软件以安装文件+命令行配置的方式进行存储,在需要编程时进行即时安装,一般来说,这样就可以在任何电脑上,任何系统上快速运行自己的开发环境
- 注:另外需要做的一件事就是对文件进行分级存储,让我能知道哪些文件是需要备份起来,如果文件夹坏掉可以知道之前有哪些重要文件
vscode portable 安装
-
download code-stable-x64.tar.gz from https://code.visualstudio.com/docs/?dv=linux64
csharp
// 检测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
csharp
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
csharp
// 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
csharp
// 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 进行如下配置:
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 调试脚本的路径
}
]
}