最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
yy:复制当前行 nyy:复制n行
p:粘贴到下一行 np:粘贴n行
u:撤销上次动作
dd:剪切光标所在行 ndd 剪切n行
gg:将光标定位文件最开始
shift+g:将光标定位文件最结尾 n,shift+g,定位第n行
shift + 4($) :将光标定位当前行的最结尾
shift + 6(^) :将光标定位当前行的最开始
b,w,按照单词前移,后移 nb,nw
x,nx 删除文本内容
hjkl,左(h)下(j)上(k)右(l)
底行模式
/查找文本
ctrl + 快速两次w 切换窗口
vim test.c + 8 光标定位到出错附近
zz:保存退出
ctrl + r 反撤销
二.gcc
=====
预处理,编译,汇编,链接
我们来了解上面四个步骤都干了什么
预处理
-
进行宏替换,文件包含,条件注释,去注释等
-
实际操作:gcc -E hello.c -o hello.i
-
-E是让预处理结束后停止编译过程(end的意思)
-
-O是指目标文件(object),i文件为已经预处理过的文件
编译
–
-
这个阶段,gcc首先会检查代码的正确性,无误后将代码翻译成汇编语言。
-
实际操作:gcc -S hello.i -o hello.s
-
-S生成汇编代码,但只进行编译,不进行汇编。
汇编
–
-
这个阶段是将编译阶段生成的.s文件转成机器可以识别的代码。
-
实际操作:gcc -c hello.s -o hello.o
-
使用-c就可以看到汇编代码已转化为.o的二进制目标代码了
链接
–
-
生成可执行文件。
-
实际操作:gcc hello.o -o hello
1.Linux有两种库,一种是静态库(libxxx.a),一种是动态库(libxxx.so),gcc静态连接时,默认是动态链接,一般链接的时候,找的库是.so。静态链接找.a。如果出现链接错误,应该先确认是否存在对应的库。
-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
-S 编译到汇编语言不进行汇编和链接
-c 编译到目标代码
-o 文件输出到 文件
编译器如何找到各种库?
使用库,其实是在使用什么东西?
如何生成库?
linux环境可以跑大部分语言
3.Linux调试器——gdb使用
=================
ctrl r 历史命令搜索
Linux默认生成的可执行程序是动态链接,以release版本发布
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!