1. linux下makefile文件的编写
INC_PATH:=-I./include/
LIB_PATH:=-L./lib/
LIBS:=$(LIB_PATH)-lerr-larm
CC:=gcc
LD:=gcc
CFLAGS:=-O2-Wall$(INC_PATH)
SRC_PATH:=./source
SOURCE:=$(SRC_PATH)/a.c
$(SRC_PATH)/b.c
$(SRC_PATH)/c.c
TARGET:=target
OBJS:=a.ob.oc.o
$(TARGET):$(OBJS)
$(LD)-O2-o$(TARGET)$(OBJS)$(LIBS)
a.o:$(SRC_PATH)/a.c
$(CC)$(CFLAGS)-c-o$@$<
b.o:$(SRC_PATH)/b.c
$(CC)$(CFLAGS)-c-o$@$<
c.o:$(SRC_PATH)/c.c
$(CC)$(CFLAGS)-c-o$@$<
.PHONY:clean
clean:
-rm-f$(OBJS)
2. linux Makefile configure里面 += := -= 这些符号的意思
:= 和 = 用在赋值时,:= 的赋值是马上生效, 而 = 则是等到变量被引用时才递归生效。用两个简单的makefile举例说明最简单:
makefile1:
bar=456
foo=${bar}
bar=${xxx}
xxx=123
all:
echo ${foo}
echo出的结果是 123, foo的值在 echo 的时候,先被扩展成 ${bar}, 再递归的被扩展成 ${xxx},最终是123
makefile2:
bar=456
foo:=${bar}
bar=${xxx}
xxx=123
all:
echo ${foo}
此时由于 用了 := ,在赋值时候 foo 的值就直接被扩展成 bar 在那个时刻的值,即 456, 最后的echo的结果也就是 456 了。
+= 就很简单了,就是在一个变量的值的尾部增加内容,如:
foo = abc
foo += efg
则 foo 的值就是 abc efg
makefile没有 -= 这个操作符。
3. linux 系统自带makefile的么在哪里找到
redhat 4.0?你说的是RHEL4吧
makefile仅仅是文件而已,或者说一系列脚本,可以手工编写,也可以其他脚本或者开发环境自动生成,然后你使用make命令调用makefile文件
寒死我了lz makefile是随源代码发行包一起提供的 ,通常来讲,下载源代码后运行./configure 然后就自动生成合适你的系统的makefile 然后运行make即可
总之上搜索引擎查查make的使用方法就了解了
4. LINUX makefile 命令
第4步是第三步的说明。
也就是说 第三步应该会输出第四步这些东西。
然后你要根据你的需求 以及第四步的说明,来配置./18_angels的参数。
5. 关于linux的makefile
命令行必需以[Tab]键开始,以和Makefile其他行区别。
就是说所有的命令行必需以[Tab] 字符开始,但并不是所有的以[Tab]键出现行都是命令行。但make程序会把出现在第一条规则之后的所有以[Tab]字符开始的行都作为命令行来处理。
你下面的rm语法上没问题的,所以应该是[Tab]的问题。
6. 在linux下怎么makefile
Linux系统下makefile的作用把编写好的源文件进行编译与链接,makefile的基本格式如下:
target…
:prerequisite…
(Tab键)command
#格式解释
target:生成的目标文件,可以是可执行文件,也可以是中间目标文件
prerequisite:生成target所需要的文件
command:make需要的执行命令,一般是编译与链接的命令,命令前面必须要有Tab键才能有效果
makefile的简单例子(用的Ubuntu11.10):
gcc–chello.c:编译command目录下的hello.c源文件,编译之后会生成hello.o中间文件。
rm:删除command目录下的hello.o与exe.out文件
./exe.out:输出exe.out可执行文件,hello.c中写的是HelloWorld!
make:make命令与makeexe命令执行的效果是一样的。
7. linux中Makefile中:=表示意思,解释一下,谢谢
makefile中:=是指引用,比如 KDIR:= /lib/moles/2.6.30/build,其中文件路径太长,用KDIR来表示,在后面的语句中就可以用$KDIR来代指/lib/moles/2.6.30/build;其实就是为了方便程序的书写。记着引用时要在前面加$。 就类似于C语言变量的概念。
8. linux下makefile问题
A目录MAkefile内容是什么。cd ../A ?这里有问题 ,不是上一级目录,可以这样改:
make -C A/
make -C B/
9. linux里面的make和makefile是做什么的
1、make:是一个非常重要的编译命令,本质上它是一个程序。利用make工具,可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。
2、Makefile文件 :Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作,本质上makefile文件是个文本文件,用于配置编译过程。makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。
3、在 UNIX 系统中,习惯使用 Makefile 作为 makfile 文件。如果要使用其他文件作为 makefile,则可利用类似下面的 make 命令选项指定 makefile 文件:
$ make -f Makefile.debug
例如,一个名为prog的程序由三个C源文件filea.c、fileb.c和filec.c以及库文件LS编译生成,这三个文件还分别包含自己的头文件a.h 、b.h和c.h。通常情况下,C编译器将会输出三个目标文件filea.o、fileb.o和filec.o。假设filea.c和fileb.c都要声明用到一个名为defs的文件,但filec.c不用。即在filea.c和fileb.c里都有这样的声明:
#include "defs"
那么下面的文档就描述了这些文件之间的相互联系:
#It is a example for describing makefile
prog : filea.o fileb.o filec.o
cc filea.o fileb.o filec.o -LS -o prog
filea.o : filea.c a.h defs
cc -c filea.c
fileb.o : fileb.c b.h defs
cc -c fileb.c
filec.o : filec.c c.h
cc -c filec.c
这个描述文档就是一个简单的makefile文件。
10. 如何在linux下写makefile
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。
make命令的选项与参数
然后就完了。