IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> vscode跳坑(针对Linux) -> 正文阅读

[开发工具]vscode跳坑(针对Linux)

目录

一.关于更改vscode自带终端文字间隔,字体大小

二.关于vscode使用的基本插件(C++语言)

三.关于cmake的基本内容与使用(代码编译)

????????? ?四.关于json文件的内容及基本概念(代码自动编译及调试)

五.关于Pangolin的安装?


一.关于更改vscode自带终端文字间隔,字体大小

文件 -> 首选项 -> 设置 -> 搜索“终端”->

????????找到Terminal>Integrated:Font Family -> 更改为monospace即可

????????找到Terminal>Integrated:Font Size -> 即可更改字体大小

二.关于vscode使用的基本插件(C++语言)

1.c/c++

2.Chinese (Simplified)

3.CMake

4.CMake Tools

三.关于cmake的基本内容与使用(代码编译)

1.CMakeLists.txt基本内容(注意文件夹名称应加s,而非CMakeList)

cmake_minimum_required(VERSION 2.7)     #要求的cmake最低版本

project(test-2) #项目名称

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall")  #追加调试和警告信息

#include_directories(./inc)      #头文件的相对路径
include_directories(${CMAKE_SOURCE_DIR}/inc)     #头文件绝对路径(CMAKE_SOURCE_DIR表示CMakeLists.txt文件所在的文件夹路径)

#add_library(printhello SHARED printhello.cpp) #生成共享库 以.so结尾
add_library(print ./src/print.cpp) #生成静态库  以.a结尾
add_executable(hello ./src/hello.cpp) #用main函数所在文件生成可执行文件
target_link_libraries(hello print) #将可执行文件与依赖库链接

#add_executable(hello ./src/print.cpp ./src/hello.cpp)     #不生成库文件

?2.使用

注:为避免cmake生成的文件与cpp文件,头文件混在一起,一般新建一个build文件夹,在该文件夹下执行cmake,这样生成的cmake文件只在build文件夹下

在build文件夹下使用:cmake 路径 (路径为CMakeLists.txt文件所在的相对路径),若无报错且正常生成makefile文件后,在build文件夹下使用:make 编译,若正常生成可执行文件并无报错,则说明编译成功

四.关于json文件的内容及基本概念(代码自动编译及调试)

以下均为个人理解,如有错误或偏差,欢迎评论区指正,万分感激!!

注:我最初一直以为json文件是自动生成的,主要是由于不了解json文件,其实launch.json和tasks.json只是两个文件罢了,可以vscode自动生成,也可以手动编写,你无须顾虑手动编写会带来哪些隐患,手动编写和vscode自动生成的都是一样的,同时这两个文件都是在.vscode文件夹下,如果没有出现.vscode文件夹,你也可以手动创建,这同样也都是一样的

1.launch.json文件:这是一个调试的配置文件,能够控制调试过程

? ? ? ? 创建launch.json文件:

? ? ? ? ? ? ? ? 1.点击左侧边栏的运行和调试(或按ctrl+shift+d)?

? ? ? ? ? ? ? ? 2.点击创建launch.json文件,在跳出的选项中找到C++(GDB/LLDB)并点击

? ? ? ? ? ? ? ? (注:若没有C++(GDB/LLDB)选项,则回到第一步前,先打开一个cpp文件,再执行1,2步)

? ? ? ? ? ? ? ? (有些人第2步做完还会有一个选项步骤,但我没有,所以创建的launch.json没有配置息)

? ? ? ? ? ? ? ? 3.点击后会发现左侧边栏的资源管理器中会出现.vscode文件,其中包括launch.json文件

? ? ? ? ? ? ? ? 4.因创建的launch.json无配置信息,所以点击右下角的“添加配置”标志,选第一个就好

? ? ? ? ? ? ? ? 5.你会发现在"configurations"下出现了一个大括号的内容,每个大括号都是一个配置信息,?且对应有名称"name",你在运行和调试栏中会发现有个下拉选项,该下拉栏中会出现每个配置信息的名称,他决定着你调试时使用哪个配置信息

? ? ? ? ? ? ? ? 6.关于配置信息中的每个成员表示什么,你只需将鼠标放在上面便会知晓
? ? ? ? ? ? ? ? 7.在这些配置信息中,我们暂时只需关注"program"成员,即程序可执行的完整路径,${workspaceFolder}表示你当前的工作目录,因此如果你按照上述步骤来,这一项会填为:"${workspaceFolder}/build/demo"(其中demo替换为你自己的可执行文件即可)

? ? ? ? ? ? ? ? 总的launch.json为:

{
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
                {
                        "name": "(gdb) 启动",
                        "type": "cppdbg",
                        "request": "launch",
                        "program": "${workspaceFolder}/build/demo",
                        "args": [],
                        "stopAtEntry": false,
                        "cwd": "${fileDirname}",
                        "environment": [],
                        "externalConsole": false,
                        "MIMode": "gdb",
                        "setupCommands": [
                            {
                                "description": "为 gdb 启用整齐打印",
                                "text": "-enable-pretty-printing",
                                "ignoreFailures": true
                            },
                            {
                                "description":  "将反汇编风格设置为 Intel",
                                "text": "-gdb-set disassembly-flavor intel",
                                "ignoreFailures": true
                            }
                        ],
                }
        ]
}

至此launch.json创建完成,你可以设置一个断点,然后按F5进入调试,看一看能否命中你设置的断点,如果可以,则说明文件配置成功


2.tasks.json文件:据我了解这是一个任务脚本(我暂时只了解将其用于launch前的准备任务)

? ? ? ? 创建tasks.json文件:

? ? ? ? ? ? ? ? 1.点击顶部栏的终端,选择“配置默认生成任务”,如果你像我一样只关注调试,那后面的选项随便选,生成tasks.json文件后删除tasks里的所有内容,删除后的tasks为:"tasks": []

????????????????(注:你同样可以将鼠标放在成员上了解该成员的作用)

? ? ? ? ? ? ? ? 2.在tasks下创建task任务,每一个task任务都在一个{}大括号中:

? ? ? ? ? ? ? ? 3.首先明确我们使用task.json是用来做为调试前的准备工作,在调试之前我不想再在命令行中输入cmake,make等指令,将这些任务都放在task中,因此我们需要准备两条task command任务

? ? ? ? ? ? ? ? 4.创建第一个任务:该任务的通俗理解是在build文件夹下执行:cmake ../ 命令

{
    "type": "shell",
	"label": "cmake",
	"options": {"cwd": "${workspaceFolder}/build"},
	"command": "cmake ../",
	"args": [],
},

? ? ? ? ? ? ? ? (你可以去了解“type”成员,这里不做解读,我尝试去掉type成员最终也成功了)

? ? ? ? ? ? ? ? label成员你可以理解为该任务的标签

? ? ? ? ? ? ? ? option这一句的意思是进入${workspaceFolder}/build目录,即在build目录下进行该任务

? ? ? ? ? ? ? ? command是任务命令

? ? ? ? ? ? ? ? args是任务命令的参数,你可以将参数"../"移动到args中,也可以直接写到command中

? ? ? ? ? ? ? ? 4.创建第二个任务:该任务的通俗理解是在build文件夹下执行:make 命令

{
	"type": "shell",
	"label": "make",
	"options": {"cwd": "${workspaceFolder}/build"},
	"command": "make",
	"args": [],
},

? ? ? ? ? ? ? ? 5.因为上述两个任务是独立的,因此我们将其整合为一个任务中,重新创建一个任务,该任务依赖上述两个任务

{
	"type": "shell",
	"label": "build",
	"dependsOrder": "sequence",
	"dependsOn":[
		"cmake",
		"make",
	],
},

? ? ? ? ? ? ? 可以看到该任务没有command成员,而是加入了dependsOn成员,故我将此理解为一个依赖任务;该任务的通俗理解是在build文件夹下执行:cmake ../? +? make? 命令

? ? ? ? ? ? ? ? 总的tasks.json为:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "cmake",
			"options": {"cwd": "${workspaceFolder}/build"},
			"command": "cmake ../",
			"args": [],
		},

		{
			"type": "shell",
			"label": "make",
			"options": {"cwd": "${workspaceFolder}/build"},
			"command": "make",
			"args": [],
		},

		{
			"type": "shell",
			"label": "build",
			"dependsOrder": "sequence",
			"dependsOn":[
				"cmake",
				"make",
			],
		},
	]
}

(在vscode软件中按下?F1按键进入命令搜索模式,顶部会出来一个输入框,在框中输入tasks,会出来一个:"任务:运行任务"的选项,点击后可以看到你在tasks.json中配置的任务,你可以随便点击一个任务来运行该任务,后续弹出的选择框选择“继续而不扫描任务输出”即可。你也可以在"任务:运行任务"选项的右侧点击齿轮来设置对应的快捷键)

至此两个文件均已构建,那么如何能够让tasks.json在launch前发挥作用呢?


在launch.json文件的"configurations"的最后添加一个成员:"preLaunchTask",并指定要执行的任务为build标签对应的任务,即最后创建的依赖任务,最后的launch.json文件如下:

{
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
                {
                        "name": "(gdb) 启动",
                        "type": "cppdbg",
                        "request": "launch",
                        "program": "${workspaceFolder}/build/demo",
                        "args": [],
                        "stopAtEntry": false,
                        "cwd": "${fileDirname}",
                        "environment": [],
                        "externalConsole": false,
                        "MIMode": "gdb",
                        "setupCommands": [
                            {
                                "description": "为 gdb 启用整齐打印",
                                "text": "-enable-pretty-printing",
                                "ignoreFailures": true
                            },
                            {
                                "description":  "将反汇编风格设置为 Intel",
                                "text": "-gdb-set disassembly-flavor intel",
                                "ignoreFailures": true
                            }
                        ],
                        "preLaunchTask": "build",
                }
        ]
}

至此,所有的json文件已完成,你可以尝试修改代码后直接按F5,将会执行编译并进入调试

五.关于Pangolin的安装?

? ? ? ? 1.去github下载库到你选择的文件夹下

https://github.com/stevenlovegrove/Pangolin

? ? ? ? 2.进入你选择的文件目录,做如下操作

mkdir build        //创建build文件夹
cd build           //进入build文件夹
cmake ../          //cmake
make               //make 编译
sudo make install  //安装

? ? ? ? 最后一步很关键,我在安装时找了许多资料,很多都没有最后一步,导致在编程时,

#include <pangolin/pangolin.h>

? ? ? ? 该句会报错(出现下划线)? (但似乎能够正常make)

????????在进行最后一步操作后问题解决,下划线消失,且在输入Pangolin时有代码补充

? ? ? ? 查了一下该句的意思是将make后生成的程序安装到系统中? ?

? ? ? ? 3.在CMakeLists.txt中添加一行内容

find_package( Pangolin )

? ? ? ? 4.补充执行:

sudo ldconfig

? ? ? ? 在执行生成的可执行代码时,如果没有该句命令会出现如下报错:

????????error while loading shared libraries: libpango_core.so: cannot open shared object file: No such file or directory

? ? ? ? 原因:由于Pangolin刚安装但还没有生效

六.关于vscode缩进问题?

明明设置了Tab Size为8但每个缩进只有2个空格

解决:文件->首选项->设置->搜索 Tab->找到Editor:Tab Size->点击"Editor:?Detect Indentation"后会进行跳转->取消该选项重启即可

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:54:11  更:2022-05-13 11:54:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:08:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码