目录
多文件编译
为什么要分两步编译:
makefile文件
makefile里面安装
更改可调式版本
对比Windows中的VS
多文件编译
有以下文件
分两步:
第一步编译:.c->.o
第二步链接(可以不用写头文件):.o->(.exe)
也可一步到位:
编译的时候把所有要使用的文件都加上
为什么要分两步编译:
一般分两步编译:.c->.o,.o->(.exe)
分两步如果运行有问题只改其中几个.c->.o就可以了,其他.o直接链接,不用再次编译
如果一步直接.c->(.exe)其中的.o文件没有保存,则若每次修改其中某个.c文件都需要把所有文件都重新编译一次浪费时间。
工程大的通常会写一个makefile文件,内容描述如何编译整个工程
makefile文件
一般来讲可以用工具生成,不需要自己写
把人为自己编译的步骤打包在这个文件中
注意命令前面是tab键生成的空
使用:make 读取makefile文件的内容,按照makefile文件编译代码
(这块我忘记在makefile里面写删main了啊啊啊)
makefile里面安装
make install 安装到什么位置
如:
install:
cp main/usr/bin
更改可调式版本
makefile文件默认是不包含调试信息的(release版本)。
如果需要调试信息,则可以在makefile中加一个宏GDB = -g。在每个.c->.o(编译)的命令最后加上${GDB},表示用GDB中的值。(链接不需要)
这样再用make时命令后会加上-g
此时,生成的main为debug版,可调试。
通过对比发现debug版本比release版本大,因为debug版本中有调试信息
对比Windows中的VS
在vs上编译也有两个版本:debug版本和release版本
debug比release版本的文件大,debug版本中包含调试信息
即debug版本开发调试,release版本发布
vs中的:生成——清理解决方案,相当于makefile里面的make clean命令,可以删除可执行程序.exe和中间的obj文件。