| 查看: 1956 | 回复: 18 | |||
[交流]
【求助】f77的ifdef语句
|
|
在看一个老的f77程序,其中inc文件有这么几句: #ifdef BL real dd(nbig) #else real dd(1) #endif 好像是为了省点内存。 但我用g95编译不过去,说第2个dd已经被定义了。 该怎么处理呀? 谢谢 |
» 猜你喜欢
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有9人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有11人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有10人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有9人回复
表哥与省会女结婚,父母去帮带孩子被省会女气回家生重病了
已经有7人回复
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有9人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】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/980
西湖大学拓扑光学、非厄米光学、太赫兹方向博士后招聘
+2/264
湖南大学材料院陶益杰老师招收2026年联合培养硕士学生一名
+1/180
澳洲西澳大学Dr Yiran Liu招全额奖学金和CSC奖学金博士生(3.8万澳币/年)
+1/106
供应爱德华RV 3、RV 12,阿特拉斯及莱宝真空品牌油泵及分子泵等真空产品15216851283
+1/83
人间烟火,实则就是追求最简单的快乐
+1/77
好玩的不敢搞,能搞的不挣钱,能挣钱的我不会做
+1/67
中国农业大学安杰课题组招聘科研助理(表现优异者可提供读博机会)
+1/39
有没有人做过这种结构的顺式体向反式体的转化?
+1/35
同济大学脑机智能团队脑机接口方向招生招聘
+1/30
湘潭大学“过程强化与绿色化工”创新团队补招2026年秋入学博士生
+2/22
【青岛大学】2026年生物与医药申请考核制博士生招生(含少数民族骨干人才)
+1/20
中科院深圳先进技术研究院招聘免疫及计算生物学方向博士后、科研助理或联培学生
+1/12
澳科大招收2026年秋季药物递送/生物材料方向全奖博士研究生(3月5日18:00截止)
+1/7
澳科大药诚招2026年秋季药剂学/生物材料硕士研究生
+1/5
香港中文大学(深圳)陈筱萌 课题组招生公告(博士 / 博后 / 硕士 / RA)
+1/5
斯德哥尔摩 DigitalFuture 博士后奖学金机会!
+1/4
【经验分享】CRISPR基因敲除细胞系构建全流程踩坑指南——从递送方式选择到克隆筛选
+1/2
求助化学专业科技论文写作的课件及电子版教材
+1/1
广东工业大学-化学工程专业博士生招生1-2名
+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













回复此楼