linux 编译链接图
Linux
文章目录
- Linux
- 2:Java
- 3:.NET
- 5:GCC
编译链接图
- 源文件通过预处理 得到 纯C文件
- 找到这个文本文件,然后文本文件的内容替换#,贴在这里
- 纯C文件通过编译器 得到汇编程序
- 汇编程序 得到目标文件
- 链接器通过库文件 和目标文件得到可执行文件
- 静态库和 自己写的连接在一起
- 可执行文件系统
- 由操作系统布置到电路上去,交给CPU去执行
- 可以到 1G,2G
- 30G,40G 没有用动态库,全部在可执行文件中
- QQ 1M都不到,很小
- 动态
- .XO
- .dll
- 静态
- .a
- lib 库文件
- office bug表格之前有一个生僻字,就会崩
- 更新到下一个版本,升级,更新
- 只需要更新一两个库
- 多个动态库可以多个文件共享
- 第一个版本只支持一个英雄
- C++代码的时候,可以写 if语句, else
- #if,所有带#的操作,都是预处理操作
- #else
- #endif
- 编译
- gcc test.c -o test.exe
- ./linux.exe
- 连接
- gcc -o lin.exe linux002.c
- gcc -o lin.o -c linx.c
- 只汇编,不连接
- Qtf 编译器做的是源代码:告诉你在第一行
- 链接器只会告诉你:找不到Qtf
- cl.exe
- 相当于GCC,是一个命令行的GCC
- java c 作为编译器,不做链接,有一个解释器
- 缓冲区溢出
2:Java
- 全部是在运行的时候,找class文件
- 动态库就是 .class文件
3:.NET
VB.net 是Java的流程
然而实际上,.NET上还分了阶级。C#是全能的亲儿子,ASP/VB/F#是能力较弱的亲儿子,其他语言那是干儿子或者过继的。所以,实际中,你可以认为就是在搞C#了。
5:GCC
- gcc options filename
- -E 预处理
- -S 预处理,编译
- -c 汇编而不链接
- -o outputname 输出的文件名字
- -g 要注意每一个二进制码,每一个文件的文件名,以后需要调试
- -O 开优化,在编译,链接过程进行优化处理
- 会智能化的优化,如果for循环做同样的事情,那么就只做一次
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
