| 查看: 2131 | 回复: 18 | |||
[交流]
【求助】f77的ifdef语句
|
|
在看一个老的f77程序,其中inc文件有这么几句: #ifdef BL real dd(nbig) #else real dd(1) #endif 好像是为了省点内存。 但我用g95编译不过去,说第2个dd已经被定义了。 该怎么处理呀? 谢谢 |
» 猜你喜欢
宿州学院学报
已经有4人回复
青B发送上会通知了吗
已经有14人回复
博士申请
已经有5人回复
4,4二甲基联苯干啥用,有懂得吗
已经有4人回复
西安交大新媒学院副院长用撤稿论文结题
已经有7人回复
论文撤稿了
已经有9人回复
化学专业申博
已经有5人回复
招收2026级博士生
已经有5人回复
医学类期刊求推荐
已经有6人回复
26/27申博自荐
已经有10人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】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人回复
» 抢金币啦!回帖就可以得到:
江西理工大学2026年博士研究生招生报名公告(第二批次),可以联系马胜灿老师
+2/928
坐标北京,诚征女友
+2/396
西安电子科技大学保研: 挑战高速IP设计NVMe,RDMA及NVMe-oF
+1/288
征结婚对象,男找女,坐标【北京】【北京】【北京】
+5/145
华南师范大学海洋环境科学课题组招聘青年英才和博士后
+2/140
测试█TEM/ EPR/ XPS/PY-GCMS/TG-IR/XRF/BET/MIP/核磁/EA/ICP,VX: 761711562。
+1/94
薄膜断层光谱仪,看透薄膜内部!🔍
+1/88
江苏大学优青 胡兴好教授课题组博士后招聘
+1/81
武汉工程大学(省属一本)招聘师资博士后以及人才引进教师(事业编)
+1/78
【通知】北京信息科技大学仪器科学与光电工程学院招收博士研究生(2026)
+2/46
【通知】北京信息科技大学仪器科学与光电工程学院招收博士研究生(2026)
+2/38
【急招】“双一流”高校-新能源材料课题组招收2026年秋季入学博士生1名(湘潭大学)
+1/33
安徽大学俞洋洋课题组招收化学方向博士生1人
+1/28
郑州大学·安徽高等研究院 2026年博士招生(申请考核制)
+1/13
【博士招生】武汉科技大学招收材料、化工、环境、冶金类2026年“申请-考核”制博士生
+1/10
固体核磁测试求助
+1/9
上海交通大学研究生招生咨询会,来了!
+1/8
电子科技大学材料学院SFT创新中心招收准备考硕和读博的科研助理 理工医交叉方向
+1/6
张兆威教授课题组长期招聘科研助理
+1/5
【有偿访谈招募】高才通来港后,你过得还好吗?
+1/1
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












回复此楼