linux | vscode | makefile | c++编译和调试

简单介绍环境:
vscode 、centos、 gcc、g++、makefile
简单来说就是,写好项目然后再自己写makefile脚本实现编译。所以看这篇博客的用户需要了解gcc编译的一些常用命令以及makefile语法。在网上看了很多教程,以及官网也看了很多次,最后自己一点多一点摸索,有的些许收获。

首先要配置编译的文件tasks.json文件、调试的launch.json文件。刚开始看很抗拒,但看久了,也就自然而然的接受了。这么说吧,这两个文件很个性,所以没有经验的去用它做复杂一点的编译和调试会吃不少苦。个性,是应为,如果是编译一个项目的话,你可以试试手动输命令调试,其中涉及动态链接库(动态链接库也是容易出一堆问题),编译成功之后,去调试,对调试也理解更深了,没有可执行文件是无法调试的,简单点来说,调试就是跑你编译成功的可执行文件,毕竟机器跑很快的,所以需要设置断点,让它按照你想要的逻辑去跑,但是要注意在多线程环境下,可能程序没有按照你想的顺序跑,可能一下子跑下又跑上(可能应该一直往下跑的)。

cpp 复制代码
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build C++ project",
            "type": "shell",
            "group": "build",
            "command": "make"		//这相当于跑编译命令  如果手动编译就像 g++ xxx -0 xxx然后设置参数啥的 还经常会碰见cwd意思是确定当前的环境,比如多你的命令是在哪个目录上跑的啊        },
        {
            "label": "Build & run C++ project",//这是编译然后运行
            "type": "shell",
            "group": {
                "kind": "test",
                "isDefault": true
            },
            "command": "make",
            "args": [
                "run"
            ]
        },
       
    ]
}
cpp 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Debug (gdb)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/dronline",
            "preLaunchTask": "Build C++ project",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",			//上面介绍过了
            "environment": [],
            "externalConsole": false,				//这是打开新的终端
            "MIMode": "gdb",						//调试模式?
            "miDebuggerPath": "/usr/bin/gdb",		//这是启动gdb的路径
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]

可以看这个参考链接

vs是懒人模式,但有很多地方也很头疼,主要在导库,设置模式,这块。你要确定目录,然后才是放库。说简单点就是,比如 /usr/lib/libsort.so

你要添加这个库,你需要先把/usr/lib给添加上,然后再添加libsort.so

手敲就是这样

bash 复制代码
g++ hello.cpp -L/usr/lib -lsort -o hello

大概就这么多了。

祝好

相关推荐
原来是猿13 分钟前
蓝桥备赛(四)- 数组(下)
开发语言·数据结构·c++·算法
zjkzjk771115 分钟前
reallocate() 和 allocate() 的区别
c++
lqlj223322 分钟前
Linux常用命令
linux·运维·服务器
星霜旅人44 分钟前
【C++】深入理解List:双向链表的应用
c++
刀客1231 小时前
C++ STL(三)list
开发语言·c++
-拟墨画扇-1 小时前
C++ | 面向对象 | 类
c++·深拷贝··静态成员·友元函数·类拷贝构造函数·类构造析构函数
阿巴~阿巴~1 小时前
关于回溯算法中的剪枝是否需要for循环的总结归纳
数据结构·c++·算法·深度优先·剪枝
itachi-uchiha1 小时前
深入理解 Linux 中的 last 和 lastb 命令
java·linux·服务器
朔北之忘 Clancy1 小时前
2022 年 12 月青少年软编等考 C 语言五级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
m0_748256341 小时前
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
vscode·python·node.js