| 查看: 1763 | 回复: 18 | |||
[交流]
【求助】f77的ifdef语句
|
|
在看一个老的f77程序,其中inc文件有这么几句: #ifdef BL real dd(nbig) #else real dd(1) #endif 好像是为了省点内存。 但我用g95编译不过去,说第2个dd已经被定义了。 该怎么处理呀? 谢谢 |
» 猜你喜欢
论文投稿,期刊推荐
已经有6人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有3人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有6人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】VASP5.2 编译出错make
已经有0人回复
求助Quantum-ESPRESSO5.0 安装问题
已经有2人回复
【求助】安装vasp出错 make: *** [fftmpi_map.o] 错误 1【已解决】
已经有6人回复
【求助成功】Vasp 5.2.11编译出错
已经有10人回复
【求助】VASP5.2 f951: error: unrecognized command line option "-assume
已经有1人回复
【求助成功】vasp5.2并行安装不上
已经有18人回复
【求助】fedora中LAMMPS编译问题
已经有4人回复
【求助】安装mpich2时出现问题!
已经有6人回复
【求助】pwscf安装问题
已经有0人回复
【求助】vasp计算出现的very serious problem【完结】
已经有10人回复
【求助】fortran 程序windows 下编译正确,而linux下出错
已经有2人回复
【求助】vasp4.6 并行编译警告怎么处理
已经有6人回复
【求助】dalton-2.0编译及测试问题【完结】
已经有18人回复
» 抢金币啦!回帖就可以得到:
硫化物全固态电池的产业化破局:手套箱如何实现全线稳定制造
+1/84
加拿大/英属哥伦比亚大学曹彦凯课题组招收全奖博士/博后 [机器学习/优化/控制方向]
+1/82
捷克布拉格查理大学(QS260)招收第一性原理计算方向博士生
+1/34
医学检验方向招收申请考核博士研究生
+2/34
国家青年人才叶立群教授课题组招收2026级博士研究生
+1/34
北京理工大学国家杰青梁军教授课题组招聘2026级博士研究生
+1/30
宁波大学张天宇教授课题组招聘副教授/讲师
+1/28
【宁德时代招聘】电化学科学家
+1/28
招收26年秋季入学博士生(北科大高精尖学院 力学超材料/机器学习/增材制造相关方向)
+1/16
招收2026年秋季入学博士生1名(北京科技大学 力学超材料/机器学习/增材制造相关方向)
+1/12
意大利CSC机器人方向博士招生
+1/9
东华大学 唐正 课题组诚招2026年博士研究生-有机半导体材料与器件等
+1/8
长江大学武汉校区诚招工程热物理、油气、电气等新能源博士-2025
+1/5
香港城市大学 Microsystems and Semiconductor Technology Lab 博士生招生启事
+1/5
诚招博士后及研究人员
+1/5
湖南大学化学化工学院吕一帆课题组招收2026级博士
+1/5
长江大学武汉校区诚招新能源博士-2025
+1/4
爱尔兰都柏林圣三一大学 招聘全奖博士生/博士后/联培(电池热管理、MPC、机器人方向)
+1/2
澳洲皇家墨尔本理工RMIT招收网安方向CSC PhD
+1/2
西交利物浦大学(苏州)/刘雯老师课题组/氮化镓电力电子方向/博后
+1/2
2楼2010-12-04 19:33:31
ajian04:欢迎交流~ 2010-12-11 10:44:14
|
makefile里有这么一句: .Inc.inc: @if [ -f $*.inc ]; then mv -f $*.inc $*.inc.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.inc 我现在所有的F文件都编译过去了,只剩下几个cpp文件编不过去。 原来的makefile是linux下的,我在xp下用gcc4.5, 肯定makefile改的还没对。 [ Last edited by cean on 2010-12-4 at 21:18 ] |
3楼2010-12-04 20:20:38
4楼2010-12-04 22:01:17
5楼2010-12-05 19:14:10
6楼2010-12-05 21:24:06
ajian04:欢迎交流~ 2010-12-11 10:44:42
|
我把小inc改了名,但好像这个前处理语句没执行到。 另外一个.F.f的目标,我改.f成.for,生成了.for文件,但接下去编译是自动用f77了,我的gcc4.5带的是gfortran. makefile里定义了f77=gfortran,但.for的名字就能用f77编吧。按来还得把名字改回.f .F.f: @if [ -f $*.f ]; then mv -f $*.f $*.f.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.f |
7楼2010-12-06 10:29:09
8楼2010-12-06 10:34:37
★
ajian04(金币+1):欢迎交流~ 2010-12-11 10:45:09
ajian04(金币+1):欢迎交流~ 2010-12-11 10:45:09
|
回的真快。 不好意思贴一大段。 这是其中要插入的一个文件。原来是给linux的,我正试着改成win的。这个是流体程序duns,http://duns.sourceforge.net/home.html 我用的win下的gcc4.5.1是这里的 http://www.equation.com/servlet/equation.cmd?call=fortran 预处理怎么没执行到? .f和.F两个目标,在win下我必须注释掉一个。 谢谢 # # This makesystem was constructed on a PII machine running Linux. # We found we had to use fort77 (front-end to f2c) # instead of g77/f77 that comes with most distributions, although # we still link with the g2c directory. Enjoy. # .SUFFIXES: .Inc .inc .o .F .C .f .cpp .c F77 = gfortran CPP = gcc -C -x c -P -E -traditional-cpp CPLUS = g++ CC = gcc LINKER = gcc LIBMAKER= ar vr MKDIR =mkdir RM = del CP = copy #CHMOD = /bin/chmod CPPFLAGS = -DFUNDER -DISNAN #CFLAGS = -DRANGECHECK CFLAGS = -O2 F77FLAGS = -O2 -w #CPLUSFLAGS= -DRANGECHECK CPLUSFLAGS= -O2 LFLAGS = -Xlinker -Bstatic SYSLIBS = -L/usr/lib/gcc-lib/i486-suse-linux/2.95.2 -lg2c -lm GRAFLIBS = -lmbgrafic -lgrafic -L/usr/X11R6/lib -lX11 MACH = pcmach.o XGROBJ = Xunderscore.o #CPREC = double #FPREC = "double precision" CPREC = float FPREC = real VERSN = `2.7` .Inc.incw: @if [ -f $*.incw ]; then mv -f $*.incw $*.incw.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.incw .for.f: @if [ -f $*.f ]; then mv -f $*.f $*.f.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.f .cpp.c: @if [ -f $*.c ]; then mv -f $*.c $*.c.bak; fi $(CPP) -D"Include"="#include" -D"Define"="#define" -Dreal=$(CPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.c #.F.o: # $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.f $(F77) $(F77FLAGS) -c $*.f #.C.o: # $(CPLUS) $(INCLUDE) -Dreal=$(CPREC) $(CPLUSFLAGS) -c $< .f.o: $(F77) $(F77FLAGS) -c $< .c.o: $(CC) $(CFLAGS) -DVERSION=\"$(VERSN)\" -c $< [ Last edited by cean on 2010-12-6 at 11:03 ] |
9楼2010-12-06 10:59:57
10楼2010-12-06 14:19:10
ajian04:欢迎交流~ 2010-12-11 10:45:39
|
确实辛苦了。先把我剩下的金币献上。 我原来以为我可以不要这个SYSLIBS呢。不过好像只是和取系统时间的几个小函数有关。 GRAFLIBS只是一个简单的画图程序要用到,没什么用,确实可以不要。现在其他的后处理软件强大多了。 这个程序一个主程序是c的,计算都是fortran的。 没事只是想看看我能不能把它在win编过去。至少现在对预处理有了点了解。 我再试试。有一点是.F和.f的目标不能共存,在win下gcc会不理其中的一个的。 谢谢。 [ Last edited by cean on 2010-12-6 at 20:20 ] |
11楼2010-12-06 19:15:47
12楼2010-12-06 21:36:32
13楼2010-12-06 21:45:21
14楼2010-12-07 20:56:54
|
我的情况是不是应该写: c:\gcc\i686-pc-mingw32\lib 现在我是能把所有的f都编译过去了,但cpp都不行。 timer.cpp有句Include setsignals.cpp编译错误invalid use of undefined type 'struct sigaction'在31,32行 struct sigaction没定义! 最后一个main.cpp还没到可编译的程度。 实在不行自己写个main.f, timer和setsignals都不要了。 |
15楼2010-12-08 20:12:17
16楼2010-12-08 21:34:42
★
ajian04(金币+1):楼主也辛苦了,鼓励一下吧,欢迎多多交流…… 我最近也在研究ubuntu10.10,呵呵~ 2010-12-11 11:03:54
ajian04(金币+1):楼主也辛苦了,鼓励一下吧,欢迎多多交流…… 我最近也在研究ubuntu10.10,呵呵~ 2010-12-11 11:03:54
|
我在ubuntu10.04下试着编了一下,gcc现成的(应该没gfortran),fortran装了个www.g95.org的, f和c都编译过了,现在连接库时有问题。 那个rh7的makefile里SYSLIBS = -lg2c -lm,我编译说找不到-lg2c。 这个-lg2c据说是f77的库,供c连f的。这个程序是老了。呵呵。 不过预编译挺有意思。这里是用它生成解决不同问题的源代码。这样可执行文件对要解决的问题等于是优化了的。 |
17楼2010-12-10 20:27:06
18楼2010-12-13 13:47:25
19楼2010-12-13 20:21:08













回复此楼