24小时热门版块排行榜    

查看: 863  |  回复: 8
当前主题已经存档。

jghe

金虫 (著名写手)

[交流] 【求助】makefile 中路径是什么意思?

# THIS IS AN EXAMPLE FOR INTEL-LINUX PLATFORMS RUNNING PGF COMPILERS. CUSTOMIZE!

.SUFFIXES: .inc .f .F

  MAKE    = /urs/local/bin  
# CPP     = /usr/bin/cpp -C -P $*.F > $*.f
FC=ifort

DEBUG   = -tp p6 -O1 -Mnoframe -byteswapio -Mi4 -Mcache_align -Mdalign -pc 64
OFLAG   = -tp p6 -O2 -Munroll -Mnoframe -byteswapio -Mi4 -Mcache_align -Mdalign -pc 64
DOUBLE  = -r8
SINGLE  =
TIMING  =
#TIMING  = -pg

# binding
BIND    =
LIB     = -L../../vasp.4.4.lib/sources -ldmy4 -L/usr/local/lib -llapack64 -lblas

#-----------------------------------------------------------------------
# these are the rules and compile lines used on the IBM system
#-----------------------------------------------------------------------


主要是MAKE    = /urs/local/bin  这一行,不懂,请指教

[ Last edited by wuchenwf on 2009-6-21 at 20:27 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

★ ★
zzgyb(金币+2,VIP+0):谢谢您的参与,欢迎您再次光临计算模拟版!
MAKE    = /urs/local/bin
意思是说,
首先,MAKE这个大写的词,在该文件下面的内容中,就代表/urs/local/bin 的意思。
凡是需要用到/urs/local/bin 的时候,就写$MAKE。
省得以后改起来麻烦。
2楼2008-06-03 01:27:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jghe

金虫 (著名写手)

谢谢!它跟make makefile 的命令make 没关系吧,我make的时候总是出现
(cd .. ; /usr/local/bin/ ; cd optics)
/bin/sh: /usr/local/bin/: is a directory
/bin/sh: line 0: cd: optics: No such file or directory
make: *** [all] Error 1
是什么原因呢,谢谢!
3楼2008-06-03 15:50:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

★ ★
zzgyb(金币+2,VIP+0):谢谢您的参与,欢迎您再次光临计算模拟版!
跟make没关系
你遇到的错误是你所用的计算机上
在/ur/local/bin等目录下没有你所需要的程序文件。
因此,你应该询问系统管理员,那些编译所需的程序放到哪里了。
4楼2008-06-03 16:09:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jghe

金虫 (著名写手)

编译所需的程序 指的是什么啊? 编译器?库文件?
5楼2008-06-03 22:15:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

★ ★ ★
spur(金币+3,VIP+0):3Q!感谢帮助!
都包括在内,都得有,而且你的Makefile也得明确指定它们的位置(路径)。

没有编译器当然不行。所以你必须告诉Makefile现在这台机器的编译器究竟在哪里。

库文件其实是两类文件:
(1)一类是头文件,也就是*.H文件,主要是外部变量、宏和函数调用的声明;
(2)另一类是库文件,又分为共享库(Shared librar)和静态库(Static library)。
微软公司则故意把前者称为“运行时刻库(Runtime library)”和“动态连接库(DLL)”。

在Makefile中,一般是通过-I参数指定头文件的路径,-L参数指定库的路径。
如你上面的LIB=-L .....就是这种情况。
你必须保证对应的文件的确在那里。否则,编译程序找不到它们。

此外,Shell的不同,也会导致指定路径的方法不尽相同。

你可以搜索一下Yalefield老汉关于如何处理GCC与库文件的帖子。

[ Last edited by yalefield on 2008-6-3 at 22:34 ]
6楼2008-06-03 22:28:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jghe

金虫 (著名写手)

好的,谢谢指点!
7楼2008-06-04 08:25:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jghe

金虫 (著名写手)

我试了一下发现它好像总是从Make后面的路径开始找,我改变它,提示就不同了,库文件还没有找就出错了
(cd .. ; /opt/intel/fce/9.1.043/bin/ ; cd optics)
/bin/sh: /opt/intel/fce/9.1.043/bin/: is a directory
/bin/sh: line 0: cd: optics: No such file or directory
make: *** [all] Error 1

我的编译器是放到opt/intel/fce/9.1.043/bin/ 下的
8楼2008-06-04 08:44:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lonewolf659

铜虫 (小有名气)


wuchenwf(金币+1):欢迎过来分享你的学习经验 1-26 16:59
我装arpack的时候也遇见过,好像就是指这个make命令的位置。
你先用which make命令看看make在你机器的路径,把makefile中的MAKE后的路径改成它。
我的FC6的make路径是/usr/bin/
差距,差距啊!
9楼2008-06-11 21:47:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jghe 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见