目录
1.gcc的基本使用
2.Linux下的静态库和动态库的理解
3.Linux项目自动化构建工具——make/makefile
1.gcc的基本使用
gcc是专门用来编译c语言的
g++是专门用来编译c++的,但是g++也能够用来编译c语言
预处理(进行宏替换)
2.Linux下的静态库和动态库的理解
g++的基本使用过程和gcc一样
谈谈链接:
Linux下已经携带了语言级别的头文件和语言对应的库。
库分为两种(库的本质也是一个文件)
linux下划分的
1.静态库
labXXXX.a
2.动态库
labXXX.so
windows下划分:
1.静态库(xxxx.lab)
2.动态库(xxxx.dll)
我们用的指令很大一部分是用c写的
如何看待指令呢?
指令就是程序,工具。指令,程序,工具其实就是一回事。
1.库分为静态库(专门让编译器,对用户的程序进行静态链接的)和动态库(专门让编译器,对用户的程序进行动态链接的)
2.静态库和静态链接:链接的时候,如果是静态链接,找到静态库,拷贝静态库中我所需要的代码到我自己的的可执行程序中。
3.动态库和动态链接:链接的时候,如果是动态链接,找到动态库,拷贝动态库中我所需要的代码的地址到我自己的可执行程序中的相关位置。
4.静态链接成功:我们的程序,不依赖任何库,自己就可以独立运行
5.动态链接成功:我们的程序,还是依赖动态库,一旦动态库缺失,我们的程序无法运行。
6.静态库:因为自身拷贝的问题,比较浪费空间
7.动态库:因为可以做到被大家共享方法,所以真正的实现永远是在库中,程序内部只有地址,比较节省空间。
8.静态库vs动态库:Linux系统默认的是动态库和动态链接
3.Linux项目自动化构建工具——make/makefile
1.make是一个命令
m(M)akefie是一个文件——在当前的源代码路径下
2.规则
makefile是一个围绕依赖关系和依赖路径构建的一个自动化编译的工具
以上只是简单的makefile的使用