当前位置: 首页 > news >正文

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

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

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

{"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"]},]
}

在这里插入图片描述

{"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,
手敲就是这样

g++ hello.cpp -L/usr/lib -lsort -o hello

大概就这么多了。
祝好

http://www.lryc.cn/news/103284.html

相关文章:

  • Spring | Bean 作用域和生命周期
  • 培训(c++题解)
  • ansible-playbook编写 lnmp 剧本
  • 需求太多处理不过来?MoSCoW模型帮你
  • Vue 3:玩一下web前端技术(六)
  • 【点云处理教程】00计算机视觉的Open3D简介
  • Windows10系统还原操作
  • Django学习笔记-模板(Template)基础
  • 使用 NVM(Node Version Manager)管理 Node.js 版本
  • (文章复现)梯级水光互补系统最大化可消纳电量期望短期优化调度模型matlab代码
  • tinkerCAD案例:24. Ruler - Measuring Lengths 标尺 -量勺
  • linux系统编程重点复习--线程同步
  • 【Docker 学习笔记】Windows Docker Desktop 安装
  • getInputStream has already been called for this request 问题记录
  • 日撸代码300行:第60天(小结)
  • python和java哪个更有前景,python和java哪个更有前途
  • LeetCode_11. 盛最多水的容器
  • 【Android】APP电量优化学习笔记
  • 【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal
  • MVC与MVVM模式的区别
  • 【数据结构与算法】归并排序
  • OSG3.6.5 + VS2017前期准备及编译
  • IPv6 over IPv4隧道配置举例
  • 【GitOps系列】使用 ArgoCD 快速打造GitOps工作流
  • C#|无法打开cs文件设计窗口
  • 【SpringBoot笔记36】SpringBoot自定义WebSocketHandler集成WebSocket
  • flutter 图片相关
  • 将上位机程序从PC的window系统迁移至Intel NUC的无桌面版ubuntu系统问题记录
  • CHI中的error处理
  • 如何使用 PHP 进行数据库缓存处理?