随笔分类 - make编译
摘要:当make执行完后,我们期望将最终的可执行文件安装到系统目录下,这样在不同的目录下都可以执行编译的可执行文件,相当于做成了个命令。这个就需要用到make install。 源文件如下:用于判断系统是小端还是大端 #include <arpa/inet.h> #include <stdio.h> vo
阅读全文
摘要:如果要使用隐含规则生成你需要的目标,你所需要做的就是不要写出这个目标的规则。那么,make 会试图去自动推导产生这个目标的规则和命令,如果make 可以自动推导生成这个目标的规则和命令,那么这个行为就是隐含规则的自动推导。当然,隐含规则是make 事先约定好的一些东西。例如,有下面的一个Makefi
阅读全文
摘要:Make的运行 有时候,我们不想让我们的makefile 中的规则执行起来,我们只想检查一下我们的命令,或是执行的序列。于是我们可以使用make 命令的下述参数: “-n” “--just-print” “--dry-run” “--recon” 不执行参数,这些参数只是打印命令,不管目标是否更新,
阅读全文
摘要:书写命令 每条规则中的命令和操作系统 Shell 的命令行是一致的。 make 会按顺序一条一条的执行命令, 每条命令的开头必须以[Tab]键开头, 除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略, 但是如果该空格或空行是以 Tab 键开头的, 那么 make会认为其
阅读全文
摘要:多目标 Makefile 的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。但是如果多个目标的生成规则的执行命令是同一个,这会给我们带来很多的工作量。在makefile中可以使用$@。这个变量表示目前规则中的所有目标
阅读全文
摘要:GNU 的 make 很强大, 它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的 make 会自动识别,并自己推导命令 只要 make 看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中, 如果 make 找到一个 wh
阅读全文
摘要:在C和C++中,首先要把源文件编译成中间代码文件,在windows下就是obj文件,linux下就是.o文件:object file。这个动作叫做编译,然后再把大量的object file合成执行文件。这个动作叫做链接(link) 编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,
阅读全文