在一个目录下写一些单文件的c或者c++文件时,每次敲出命令如g++ a.cpp -o a感觉比较麻烦。所以就模仿makefile的功能,实现了扫描当前目录,并将所有c文件、cc文件、cpp文件直接调用gcc/g++编译。本程序的缺点之一就是不能用于文件间有相互include的情况,因为要扫描代码in...
分类:
编程语言 时间:
2015-01-10 17:57:40
阅读次数:
221
makefile很重要
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make...
分类:
其他好文 时间:
2015-01-09 14:19:47
阅读次数:
147
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。
一、函数的调用语法
函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:
$(
)
或是
${
}
这里,就是函数名,make支持的函数不多。是函数的参数,参数间以逗...
分类:
其他好文 时间:
2015-01-09 14:16:56
阅读次数:
212
使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。
一、示例
下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。
libs_for_gcc = -lgnu
normal_libs =
foo: $(objects)
ife...
分类:
其他好文 时间:
2015-01-09 12:41:14
阅读次数:
846
在编写linux内核模块的时候,有时候我们需要调用一只内核模块里面的函数,然而如果是在不同目录下面编译生成的内核模块,此时A模块去调用B模块的函数时候会出现函数未定义,无法调用的情况。那么以前我是在同一个目录下面,先后写两个makefile,然后编译生成两个不同的内核模块,这种方式可以正常实现A模块调用B模块里面的函数,不过非常麻烦。本博文将会针对这种情况提出一种可以同时生成多个内核模块。...
分类:
系统相关 时间:
2015-01-08 22:54:30
阅读次数:
264
编译JNI时提示"Fatal: Unable to open makefile"问题,如下图:
客户现场调试啊,没网络啊。最后只能挫败的回去了。下面贴出解决方法:
??...
分类:
系统相关 时间:
2015-01-08 20:12:34
阅读次数:
238
configure作用:是源码安装软件时配置环境用的 他根据你的配置选项和你的系统情况生成makefile文件 为make 做准备最常用的参数: ./configure --prefix 作用:不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/...
分类:
系统相关 时间:
2015-01-08 16:56:08
阅读次数:
154
make clean仅仅是清除之前编译的可执行文件及配置文件。而make distclean要清除所有生成的文件。Makefile在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:make根据Makefile编译源代码,连接,生成目标文件,可执行文件。make ...
分类:
系统相关 时间:
2015-01-07 22:03:31
阅读次数:
189
U-boot:V1.1.5
为了减小U-boot文件,我们需要把不用的裁掉!
主要从下面几个地方裁剪:
Makefile U-boot根目录下的Makefile公共文件夹 common 驱动 driversRTC
1. 主Makefile
(1)删除examples
Ln217:
...
分类:
其他好文 时间:
2015-01-06 21:36:03
阅读次数:
325
由于u-boot比较庞大,所以我们分开来分析,对于一个大型的项目我们想快速的了解其代码架构和内容,最方便的方法就是分析Makefile,所以我们今天以三星的s3c2440来分析Makefile。我们今天通过对u-boot的分析要得到以下内容:1. U-boot的入口2. 链接地址l U-boot配置...
分类:
其他好文 时间:
2015-01-06 21:24:00
阅读次数:
239