Makefile

makefile点滴整理 2013-11-09

makefile描述规则: target...:prerequisites... command... 其中target为目标文件,prerequisites为依赖文件,command为生成规则"-"号: 在makefile命令前加一个减号,表示不管命令是否出错,都继续执行后面的操作自动化变量: $@表示规则中目标集合: $

跟我一起Makefile.No1 2013-05-27

跟我一起Makefile.No1
1. Makefile是什么? Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令.2. Makefile的好处 Makefile带来的好处就是--"自动化编译",一旦写好,只需要一个make命令,整个 ...

Linux中subst是字符串处理函数 2013-05-15

Makefile里的subst 用法是$(subst FROM,TO,TEXT),即将TEXT中的东西从FROM变为TOMakefile中的字符串处理函数 格式: $(subst ;,;,;) 名称:字符串替换函数--subst. 功能:把字串;中的;字符串替换成;. 返回:函数返回被替换过后的字符串. 示例: $(subst a,the,There is a big tree), 把"There is a big tree"中的"a"替换成"the&qu

shell、makefile中的隐含变量 2013-05-14

变量值 shell中的意义 makefile中的意义$@ 以"参数1""参数2"形式保存所有参数 目标的完整名称 $? 上一条命令或函数的返回码 修改日期比目标创建晚的所有依赖(空格分开) $* 以"参数1参数2"形式保存所有参数 不包含扩展名的目标文件名称$# 参数的个数 ------ $! 上个命令的PID -----$N 第N个参数(N>=1) -----$0 当前脚本名字(UID) ----- $$ 当前进程PID ----- $%

makefile中,:=和=的区别 2012-08-28

当它们的右值是具体的值时,它们没有区别:当它们的右值是变量时,:=相当于引用,=还是复制.实例:a:=1 b:=$(a) c=$(a) a:=2 test: @echo a=$(a) b=$(b) c=$(c) Result: a=2 b=1 c=2

makefile中的wildcard与patsubst函数 2012-08-28

makefile 里的函数跟它的变量很相似--使用的时候,你用一个 $ 符号跟开括号.函数名.空格后跟一列由逗号分隔的参数.最后用关括号结束($(functionName parameter1,parameter2...parameterN)).1.'wildcard' 函数: 在 GNU Make 里有一个叫 'wildcard' 的函数,它有一个参数,功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔.你可以像下面所示使用这个命令: SOURCES = $(wildcard *.

斯坦佛编程教程-Unix编程工具二 2012-07-09

第二节-make当项目变得越来越大的时候,还用gcc命令来编译项目就没有那么吸引人了.make工具能够使编译和链接全自动化.在使用make工具的时候,程序员只需设置好项目所包含的文件和怎样去搭配好他们,接下来的make工具会自动完成编译和链接的工作.Make能够加速你的编译过程,因为假如你有十个.c的源文件但你只变动了一个文件而其它的九个文件在之前编译过那么它会知道在链接之前只需重新编译那一个单独的文件.Make有一些复杂的特性,但用它来作一些简单的事情是非常简单的.运行make进入到你的项目目

Ubuntu中配置cocos2d-x 2012-07-03

最近想找一个游戏游戏引擎来研究一下,首选当然事是cocos2d-x了.cocox2d和cocos2d-x不是同一个东西,前者是用python写的,开发语言也是python,后者是用c++写的,支持windows,linux,iOS,Android,Html5.cocos2d-x已经更新到2.0了,但新的版本并不支持linux,所以这里还是选择1.0的版本.去官网上面把源码包下载下来,这里下载到的版本是cocos2d-1.0.1-x-0.12.0.将其解压.查看根目录下面的build-linux.

Makefile:1:***遗漏分隔符。停止。 2012-03-10

MakefileVPATH=src:includeall:project.PHONY:allproject:main.o fun1.o fun2.o gcc main.o fun1.o fun2.o -o project -gmain.o:main.c gcc -c -Iinclude -o $@ $^ -gfun1.o:fun1.c gcc -c -Iinclude -o $@ $^ -gfun2.o:fun2.c gcc -c -Iinclude -o $@ $^ -gtar: tar cv

RTEMS4.9.4CSB337的skyeye仿真环境的建立 2011-01-04

(原创,欢迎转载,但请注明出处,谢谢.)因为我一直有自己的开发板,公司有这样的条件,并且开发的代码很多与外设有关系,基本没法用软件仿真,所以基本没用到skyeye.最近忙着写rtems的文章,有朋友问我,怎样用rtems跑skyeye.去官网上一看,他们的确也用skyeye跑rtems,而且工作的很好.于是自己也下了个skyeye进行仿真,发现过程非常曲折,只是简单的跑个 hello world 可以,跑稍微复杂一点的代码,就不行了.自己一点点把这个问题解决了,把文章写出来,和大家分享.目前,网

RTEMS的AT91SAM9260移植(9):HelloWorld 2010-12-28

内核编译成功后,下一步我们就开始弄Hello World,完成这个工作,首先我们去官方网站下载测试程序包.http://www.rtems.org/ftp/pub/rtems/4.9.4/class-examples-4.9.4.tar.bz2解压缩,以后我们进入 class-examples-4.9.4 的文件夹.输入以下命令cd hello_world_cexport RTEMS_MAKEFILE_PATH=/opt/rtems-4.9/arm-rtems4.9/at9260make cle

Makefile文件的相关知识2 2010-11-01

好吧,还是先来看几个例子吧:clean:rm -f *.o上面这个例子我不不多说了,这是操作系统Shell所支持的通配符.这是在命令中的通配符.print: *.clpr -p $?touch print上面这个例子说明了通配符也可以在我们的规则中,目标print依赖于所有的[.c]文件.其中的“$?”是一个自动化变量,我会在后面给你讲述.objects = *.o上面这个例子,表示了,通符同样可以用在变量中.并不是说[*.o]会展开,不!objects的值就是“*.o”.Makefile中的变

基于mini2440的QT程序移植 2010-07-09

利用QT_Creator来编写QT程序,建立一个空工程,然后逐步添加.h和.cpp,主要利用Creator的自动补齐和手册功能方便,然后保存工程,进入工程目录,把源文件和头文件拷贝到另一个文件夹里面,参考hello的.pro文件来编写这个程序的.pro 文件,.pro 文件格式如下CONFIG += qtopiaappCONFIG -= buildQuicklaunchDESTDIR = $(QPEDIR)/binHEADERS = hello.hSOURCES = hello.cppSOURC

自己写的vivi的Makefile注释 2009-02-19

以下是自己写的vivi的Makefile注释,有错的地方还请多多指教:# 这几个都表示版本号,表示为0.1.4VERSION = 0PATCHLEVEL = 1SUBLEVEL = 4VIVIRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)#定义目标系统的结构体系为arm#其中 := 表示给变量赋值并立即展开生效:= 表示延迟生效.ARCH := arm#shell函数的引用$$ -x表示可执行CONFIG_SHELL := $(shell if [ -x

例解autoconf和automake生成Makefile文件 2008-08-28

文档选项打印本页将此页作为电子邮件发送样例代码级别: 初级杨 小华 (normalnotebook@126.com), Linux 内核研究员苏 春艳, 在读研究生2006 年 9 月 21 日本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法.主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则.回页首normalnotebook@126.com).回页首回页首回页

学习写Makefile 2008-07-16

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力. 因为,makefile关系到了整个工程的编译规则.一

跟我一起学写Makefile-Lesson10 2007-08-30

[url]http://www.chinaunix.net[/url] 作者:陈皓 使用make更新函数库文件 ----------- 函数库文件也就是对Object文件(程序编译的中间文件)的打包文件.在Unix下,一般是由命令"ar"来完成打包工作. 一.函数库文件的成员 一个函数库文件由多个文件组成.你可以以如下格式指定函数库文件及其组成: archive(member) 这个不是一个命令,而一个目标和依赖的定义.一般来说,这种用法基本上就是为了"ar"命令来

跟我一起学写Makefile-Lesson5 2007-08-30

[url]http://www.chinaunix.net[/url] 作者:陈皓书写命令 ---- 每条规则中的命令和操作系统Shell的命令行是一致的.make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的.在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令. 我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被"/bin/sh"--UNIX的

使用Automake,Autoconf生成Makefile 2007-03-29

在Unix上写过程序的人尤其是用 C 来开发程序的人一般都遇到过 Makefile,用 make 来开发和编译程序的确很方便,可是要写出一个Makefile就不那么简单了.GNU Make 那份几百页的文件,让许多人害怕.当然,现在关于make的文档比较多,不过写一个Makefile总是一件很烦人的事情,GNU Autoconf 及 Automake 这两个软件就是帮助程序开发者轻松产生Makefile 文件的.现在的GNU软件如Apache, MySQL Minigui等都是利用Autocon
一周排行
  • 更多saltstack的文章总结在:http://rfyiamcool.blog.51cto.com/1030776/1357677saltstack是个好东西,我现在很多的api接口都开始用saltstack做.有 ...
  • 因为要实现一些shtml的简单功能,所以就上网找了一些简单能用的方法,不全面,但是够基本功能实现的了.Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置.我这里以windows平台的Apac ...
  • 来源:http://blog.csdn.net/tang08/article/details/1832645SHOW TABLE STATUS FROM 数据库名SHOW TABLE STATUS FROM 数据库名 ...
  • 前言  开源地址:http://git.oschina.net/zhaopeiym/Hi-Blogs
  • JS单元测试Qunit和jsCoverage使用方法
        近日在网上浏览过很多有关js单元测试相关的文档,工具,但是,针对Qunit 和 j ...
  • Ext3.Ext4的特点和区别Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ex ...
  • 单击"开始→运行",在"运行"对话框中输入"regedit"打开注册表编辑器,依次选择"HKEY_LOCAL_MACHINE\SYSTEM\Cur ...
  • 再来回顾一下相关信息:首先注意dhcp服务器的进程名和服务名都是dhcpd.整个配置文件分三个部分.服务器日志默认记录在/var/log/messages里.它能适应大.中.小型规模的网络,但要考虑dhcp服务器的位 ...
  • 虽然今年工作比较忙,但还是坚持参加了CSDN组织的英雄会第二届.如去年所约,CSDN在持续发展着,而英雄会这一中国独特的程序员式的聚会,胜利地举办了第二届.虽然不能成为MVB,但还是感谢CSDN记得发给我邀请.这份情 ...
  • JavaScript的最重要的一个部分是制作其他代码可以重用的代码.要做到这一点,你可以把代码组织成执行特定任务的函数.函数是结合在一个单一的块中,并给予一个名称的一系列代码语句.然后,你就可以通过引用该名称来执行块 ...