| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Linux基础之相关编译编译工具的基础使用 -> 正文阅读 |
|
[开发工具]Linux基础之相关编译编译工具的基础使用 |
文章目录前言 大家好,欢迎来到TheBlob的博客。时隔大半个月再次发Linux的文章,我也一度认为自己写的这些文章对各位没啥用处,因为与其说是文章,倒不如说是我的电子笔记更为合适。经过内心挣扎,决定还是继续发这些基础,希望能够帮助一些刚想入手却无从下手的小伙伴。话不多说开始献丑啦! 补充前面没有写上的基础命令 man ascii ????????????????????????????????????????查看ASCII ctrl + C ????????????????????????????????????????????强行终止 shift + 粘贴 ?????????????????????????????????????从windows复制进去 在vim里面shift + k 进去看相关函数的用法 file xx ?????????????????????????????????????????????查看文件 readelf -a xx ??????????????????????????????????查看可执行文件的elf vim编辑器插入模式i ????????????????????????????????????????????????从当前光标位置插入 I ????????????????????????????????????????????????从光标行头插入 a ????????????????????????????????????????????????从当前光标位置的后一个字符进行插入 A ????????????????????????????????????????????????从光标行尾插入 o ????????????????????????????????????????????????从光标的下一个行添加新行插入 O????????????????????????????????????????????????从光标的上一行添加新行插入 底行模式q? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 退出 w? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?保存 wq ????????????????????????????????????????????????保存并退出 q!????????????????????????????????????????????????强制退出 wq! ?????????????????????????????????????????????强制保存并退出 x ???????????????????????????????????????????????????保存并退出 w hello.c ???????????????????????????????????????将编辑内容存到hello.c上 vs hello.c ?????????????????????????????????????分屏编辑 set nonu????????????????????????????????????????临时取消行号 %s/nihao/hello/g ??????????????????????????将文件全文的nihao变成hello s/nihao/hello/g ?????????????????????????????将光标所在行nihao变成hello /hello ???????????????????????????????????????????去文本搜索hello字符 set key=XXXXXX ????????????????????????设密码 r 文件名? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? 复制文件 例:????????????????????????????????????????????????r test.c 将test.c的内容复制到当前文件 命令模式:yy ????????????????????????????????????????????????复制一行 nyy???????????????????????????????????????????????复制n行 dd ????????????????????????????????????????????????切剪/删除一行 ndd ??????????????????????????????????????????????剪切/删除n行 p ??????????????????????????????????????????????????粘贴 u ??????????????????????????????????????????????????撤销 gg ????????????????????????????????????????????????回到文件头部 gg=G ???????????????????????????????????????????自动排版(自动缩进) G? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 回到文件尾部 r? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 替换一个字符 R? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?进入到替换模式 光标定位到行尾 ???????????????????????????shift + 4 光标定位到行头 ???????????????????????????shift + 6 光标定位到最后一行 ????????????????????hift + g (前面加 数字 可以定位到对应 行号) 定位到开头? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?gg 光标快速移动 ??????????????????????????????b w 光标上下左右 ?????????????????????????????h(左) j(下) k(上) l(右) 删除光标所在位置后的字符 ????????x 删除光标所在位置之前的字符? ? ?X 大小写切换? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?shift + ~ 多开文件操作: vs 文件名 切换文件 ctrl ww 不退出编译程序 !gcc 文件名 不退出查看函数 !man 函数名 或 鼠标点到函数 shift + k 进入 gcc编译器预处理 编译 汇编 链接 *预处理:*加载头文件 *宏展开 *删除注释 *处理了条件编译 gcc -E xx.c -o xx.i *编译:将代码编译成为汇编代码 gcc -S xx.i -o xx.s 或者: gcc -S xx.c -o xx.s *汇编:将汇编代码汇编成为可重定向文件 gcc -c xx.s -o xx.o 或者 gcc -c xx.c -o xx.o ---->不会检测函数是否存在,是需声明即可 *链接:将各个可重定向文件链接成为可执行文件(目标文件) gcc xx.o yy.o zz.o -o xx 或者: gcc xx.c yy.c zz.c -o xx -----> 会去检测声明的对象或者函数是否存在 补充:
gdb调试安装gdb sudo apt-get install gdb *编译的时候,后面要加 -g *为什么要用? 一步一步调试,查找段错误的位置 *如何使用: gdb 可执行文件 例子: gdb xx
Makefile*> make是一个项目管理工具 *> 使用: *》安装make sudo apt-get install make *》书写 Makefile 的文件 *》按照make的规则,在Makefile中书写 代码 *Makefile基本姿势: 目标 : 依赖 (tab键) 命令 *声明: ????????依赖可以没有 ????????命令也可以没有 ????????目标就是我们要生成的东西 ????????如果不需要生成目标,称该目标为伪目标 *make的使用: make 目标 : ????????查看该目标文件是否存在,如果存在是否为最新。 ????????如果不存在,则去生成,如果不需要生成,则该目标为伪目标 ????????如果目标是整个Makefile中的第一个目标, 可以省略不写 优势:时间戳管理方式: ????????如果依赖没有目标新,那么就不需要重复编译,否则谁最新就编译谁 ????????依赖文件必须存在,如果依赖不存在,make想方设法去生成(将其作为目标去生成) cc -c -o xx.o xx.c *伪目标: ????????我们不需要生成该文件,如果在项目中有该文件,则该伪目标由于没有依赖,永远是最新,顾不再执行,解决方式 ????????.PHONY : 伪目标 * 变量赋值: * 简单赋值 :=? ?????????????????????在当前行有效 * 递归赋值 =????????????????????????递归查找某变量的最后一个值 * 条件赋值 ?=??????????????????????如果某变量已经定义,那么该语句无效 * 追加赋值 +=?????????????????????对某个变量进行追加操作 * 如果想隐藏命令(只执行,不显示),在命令前面加上@ echo : 打印的命令 $^ ---> 代表所有的依赖 $@ ---> 代表目标 $< ---> 代表第一个依赖 make -C 文件夹(目录) -----》执行该 目录 下面的 Makefile下的第一个目标 make -C 文件夹(目录) 目标 -----》执行该 目录 下面的 Makefile下的目标 友情提示: 对于刚开始学的时候可以先把通讯录这种C语言初学者的小项目进行管理来练手,初步的熟悉一下Makefile的相关格式。 总结以上就是Linux中相关工具的基本操作了,掌握了这些能够满足处于新手阶段在Linux上编写、调试C语言代码、并且还能初步了解项目管理。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 22:56:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |