[问题]我的makefile文件的编写有错吗?

软件和网站开发以及相关技术探讨
回复
头像
oneju
帖子: 54
注册时间: 2007-06-02 0:12
送出感谢: 0
接收感谢: 0
联系:

[问题]我的makefile文件的编写有错吗?

#1

帖子 oneju » 2008-07-22 21:53

makefile内容如下:

代码: 全选

vpath %.h header
vpath %.c main:mytool1:mytool2
sources=main.o mytool1.o mytool2.o
test:$(sources)
   gcc -o test $(sources) -Wall
main.o:mytool1.h mytool2.h
mytool1.o:mytool1.h
mytool2.o:mytool2.h
.PHONY:clean
clean:
   -rm $(sources) test

makefile、/main、/mytool1、/mytool2、/header在目录/5
main.c在目录/main
mytool1.c在目录/mytool1
mytool2.c在目录/mytool2
mytool1.h和mytool2.h在目录/header
执行make后出现如下错误:

cc -c -o main.o main/main.c
main/main.c:1:21: 错误: mytool1.h:没有该文件或目录
main/main.c:2:21: 错误: mytool2.h:没有该文件或目录
make: *** [main.o] 错误 1

请问问题出在哪里的?
Python开拓者Q群:56244574
GDUT-LinuxQ群:28460742
http://hi.baidu.com/wanghun/
gcheng.chatswood
帖子: 14
注册时间: 2008-07-22 9:56
送出感谢: 0
接收感谢: 0

#2

帖子 gcheng.chatswood » 2008-07-24 10:14

assuming you have used:

代码: 全选

#include "mytool1.h"
#include "mytool2.h"

in your main.c.

Try to add "CFLAGS := -I header" at the beginning of your makefile.

make能找到头文件,但gcc并不会自动得知头文件的位置。

your implicit rule only tells make that main.o depends on file "mytool1.h", and make knows it is mytool1/mytool1.h, so modification of mytool1.h will trigger regeneration of main.o. But the command used by make should be: "cc -c -o make.o main/main.c", thus you ought to provide flags to pass to cc/gcc.
头像
oneju
帖子: 54
注册时间: 2007-06-02 0:12
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 oneju » 2008-07-24 16:39

Yes.Thank you!
Python开拓者Q群:56244574
GDUT-LinuxQ群:28460742
http://hi.baidu.com/wanghun/
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 weihua2008 » 2008-09-16 17:42

gcheng.chatswood
想问问你,当要加载库函数时应该将-l或者-lm放在哪?
比如说用到sin函数时,
gcc -Wall sin.c -o sin -lm
gcc -Wall sin.c -lm -o sin
在makefile的时候,不知道将-lm放在哪了。放哪似乎都不起作用
flyinflash
帖子: 2376
注册时间: 2006-09-21 14:28
送出感谢: 0
接收感谢: 0

#5

帖子 flyinflash » 2008-09-21 3:02

代码: 全选

gcc -o t t.c -lm

代码: 全选

gcc -o t t.c -lxx

请去图书馆或者书店找两书,看完就什么都清楚了
http://wiki.ubuntu.org.cn/index.php?tit ... iant=zh-cn
http://www.douban.com/subject_search?ca ... t=gnu+make
头像
xizhi.zhu
帖子: 46
注册时间: 2008-09-20 4:47
来自: Tampere
送出感谢: 0
接收感谢: 0
联系:

Re: [问题]我的makefile文件的编写有错吗?

#6

帖子 xizhi.zhu » 2008-09-23 4:22

最好还是用automake自动编写makefile,有现成的工具就要充分利用
回复

回到 “软件/网站开发”