makefile 求助

编译打包和其他
回复
peng.jiang
帖子: 1
注册时间: 2009-11-14 7:32

makefile 求助

#1

帖子 peng.jiang » 2009-11-14 7:41

最近学着初级的makefile 因为涉及到项目是用fortran编写 所以学习makefile时用了简单的fortran程序
主要包裹def.h(头文件) try.F(主程序) subr.F(子程序),makefile如下:
trymake: try.o subr.o
f77 -g -o run.exe try.o subr.o
try.o: try.F def.h
f77 -g -c try.F
subr.o: subr.F def.h
f77 -g -c subr.F
clean:
rm run.exe try.o subr.o

在主程序中用#include "def.h" 时make没有任何问题
但用#include <def.h> 却提示找不文件
项目程序里大都都是用的#include <>
不知道是什么问题 求高手帮忙 谢谢
附件粘帖如下
附件
makefile.rar
(7.76 KiB) 已下载 58 次
wenqungang
帖子: 40
注册时间: 2009-11-13 17:48

Re: makefile 求助

#2

帖子 wenqungang » 2009-11-15 14:26

我不太懂fortran,如果你要将#include后面的<>变成" "的话,可以试试在Vim编辑器中命令行模式中输入:%s/\(\#include\).\{-}<.\{-}\(\a.*\a\).\{-}>/\1\"\2\"/g然后回车看看。
gegebao
帖子: 1
注册时间: 2009-03-16 17:26

Re: makefile 求助

#3

帖子 gegebao » 2009-11-19 23:19

你好,当你include一个头文件的时候用的是<>的话,它是到include那个环境变量指定的路径中去找那个头文件,用" "是在当前路径下找.h文件,你的def.h应该是你自己写的可能在当前目录下,所以你用<>的话找不到,因为你的当前目录不在include指定的目录里。个人浅见!见笑
wenqungang
帖子: 40
注册时间: 2009-11-13 17:48

Re: makefile 求助

#4

帖子 wenqungang » 2009-11-21 12:46

的确如LS所说,如果你将def.h文件放在当前目录下时,你可以将makefile文件中的两行作如下修改
f77 -g -c try.F --> f77 -I./ -g -c try.F
f77 -g -c subr.F --> f77 -I./ -g -c subr.F
回复