摘要:目录1. makefile基本语法复习2. 命令前提目标 order-only prerequisites3. 例子在makefile中,有时会在依赖关系中看到竖线“|”管道符,它是作用是用来指示命令前提目标 order-only prerequisites。 1. makefile基本语法复习这里
阅读全文
随笔分类 - makefile
摘要:之前已经讲了这一篇文章:Makefile实际用例分析(一) 比较通用的一种架构 现在这篇其实和那个差的不是很多,只是在布局上有些差别(这个makefile也是论坛上一起讨论过的,囧,忘了哪个论坛) 还是先看看基本的文件布局: 介绍: debug是调试版本的binary文件夹 release是发行版本
阅读全文
摘要:这里不再说Makefile的基本知识,如果需要学习,那么请参考: 下载:makefile 中文手册 或者 点击打开链接 或者 跟我一起写Makefile( 陈皓 ) 这里说的是一般的实际的一个工程应该怎么去写。 环境:ubuntu 10.04 先看看我的文件的分布情况: 顶层: 然后src中:是所有
阅读全文
摘要:前面两篇已经说过了自己怎么去为一个工程写makefile: 第一篇 第二篇 现在这一篇说的是怎么使用GNU的工具去写一个符合开源标准的Makefile呢! 首先我觉你应该参考: Automake Autoconf 这里就一步一步来解释:依然使用之前两篇中的例子ir_tree! 还是先看看我的文件布局
阅读全文
摘要:I want a build rule to be triggered by an include directive if the target of the include is out of date or doesn't exist. Currently the makefile looks
阅读全文
摘要:最近编译源文件发现当修改头文件后,make并不会自动把包含此头文件的所有源文件重新编译,而每次都是需要把对应的中间文件清除才能重新编译,非常的麻烦。因此需要make自动对源文件所依赖的头文件进行管理,即make自动生成依赖文件。鉴于本人的刚开始写的博客,很多方面经验不足,比如如何介绍我所用到的知识等
阅读全文
摘要:手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难及时,修改源或头文件后makefile可能忘记修改。为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系。-M选项会把包含的系统头文件以及其所包含的其他系统头文件也找出来了,如果我们不需要输出系统头文件的依赖关系时,可以用
阅读全文
摘要:-include和sinclude -include和sinclude 如果有文件没有找到的话,make会生成一条警告信息,但不会马上出现致命错误。它 会继续载入其它的文件,一旦完成makefile的读取,make会再重试这些没有找到,或 是不能读取的文件,如果还是不行,make才会出现一条致命信息
阅读全文
摘要:makefile 分析1 -p 选项,可以打印出make过程中的数据库, 下面研究一下内置的变量和规则。 -n 选项, 只运行,不执行, -d 选项,相当于--debug=a, b(basic),v(verbose),i(implicity),j(innvocation of command),m(
阅读全文
摘要:目录(?)[-] 使用变量 ———— 在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”
阅读全文
摘要:嵌套执行make 在一些大的工程中,我们会把我们不同模块或是不同功能的源文件放在不同的目录中,我们可以在每个目录中都书写一个该目录的Makefile,这有利于让我们的Makefile变得更加地简洁,而不至于把所有的东西全部写在一个Makefile中,这样会很难维护我们的Makefile,这个技术对于
阅读全文
摘要:http://blog.csdn.net/leexiang_han/article/details/9274229 学习了几天的makefile的嵌套调用编写也有一些心得,先声明,我也是初学者写文章只是为了更好的交流,也希望避免其他刚入Linux编程大门的童鞋少走弯路。以下都是经过我多次测试并跑成功
阅读全文
摘要:一、文本处理函数以下是GNU make内嵌的文本(字符串)处理函数。1 $(subst FROM,TO,TEXT)函数名称:字符串替换函数—subst。函数功能:把字串“TEXT”中的“FROM”字符替换为“TO”。返回值:替换后的新字符串。示例:$(subst ee,EE,feet on the
阅读全文
摘要:CC 与 CXX: 这是 C 与 C++ 编译器命令。默认值一般是 “gcc” 与 “g++”。 CPPFLAGS will be given to the C preprocessor 这是用于预处理阶段的选项。 CFLAGS 与 CXXFLAGS CFLAGS 表示用于 C 编译器的选项,CXX
阅读全文
摘要:转自:http://www.firekyrin.com/archives/597.html 编译选项 让我们先看看 Makefile 规则中的编译命令通常是怎么写的。 大多数软件包遵守如下约定俗成的规范: 让我们先看看 Makefile 规则中的编译命令通常是怎么写的。 大多数软件包遵守如下约定俗成
阅读全文
摘要:CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建
阅读全文
摘要:main.cpp#include "classes/fun.h"int main() { Test::display("Hello makefile"); return 0;}classes/fun.h#include using namespace std;class Test {pu...
阅读全文
摘要:摘要终端传值给Makefile,咋传?只需在终端输入以下命令,那么就可以在Makefile文件中放心大担的使用$(abcde)这个变量了,它的值为BBBMakefilefun.h#include class Test {public: void static display(const cha...
阅读全文
摘要:摘要假定你对linux已经比较的熟悉,假定你编程已经稍有经验,本文不会对文章作出太多基础性解释,看不懂莫怪,只当作给学习的朋友一个引导思路,我也是一个初学者,边学边写,将学会的教给大家,文章有错误之处误导了朋友,请轻喷makefile假定你对linux已经比较的熟悉,假定你编程已经稍有经验,本文不会...
阅读全文
摘要:摘要`@echo "开始生成最终执行文件,请稍候..."`这一句便是将一条信息输出到终端,为何前边有个`@`符号呢?有了这个符号该命令本身就不会输出到终端(不理解,自己去掉或者加上`@`符号试试),实验证明,字符串可以不加引号。 看到`OBJS = main.o`了吗?这就是变量的定义,变量定义遵循...
阅读全文