Fortran Coder

查看: 11955|回复: 6
打印 上一主题 下一主题

[编译器] 新人求助,simply Fortran build报错

[复制链接]

4

帖子

1

主题

0

精华

新人

F 币
27 元
贡献
12 点
跳转到指定楼层
楼主
发表于 2020-8-12 21:19:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
新人求助。之前一直用学校的正版NAG Fortran,现在毕业了换了simply Fortran。原来可以运行的代码居然不能运行了。执行build project时提示:Error: Target (build\module.o) is defined recursively。字面意思是这个文件被重复定义,但是查了很多地方也没有给出更具体的说明,求教诸位,多谢多谢。以下是大部分的Makefile内容FC="C:\Program Files (x86)\Simply Fortran 2\mingw-w64\bin\gfortran.exe"
CC="C:\Program Files (x86)\Simply Fortran 2\mingw-w64\bin\gcc.exe"
AR="C:\Program Files (x86)\Simply Fortran 2\mingw-w64\bin\ar.exe"
WRC="C:\Program Files (x86)\Simply Fortran 2\mingw-w64\bin\windres.exe"
RM=rm -f

IDIR=

LDIR=


OPTFLAGS= -g

SPECIALFLAGS=$(IDIR)

RCFLAGS=-O coff

PRJ_FFLAGS=

PRJ_CFLAGS=

PRJ_LFLAGS=

FFLAGS=$(SPECIALFLAGS) $(OPTFLAGS) $(PRJ_FFLAGS) -Jmodules

CFLAGS=$(SPECIALFLAGS) $(OPTFLAGS) $(PRJ_CFLAGS)

"build\CFLUPOUT.o": ".\CFLUPOUT.f90" "modules\mod_controldata.mod" "modules\mod_solution.mod" "modules\diff.mod" "modules\prcp.mod" "modules\soil.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\CFLUPOUT.f90
        @$(FC) -c -o "build\CFLUPOUT.o" $(FFLAGS) ".\CFLUPOUT.f90"

"build\CHZ.o": ".\CHZ.f90" "modules\mod_controldata.mod" "modules\typedef.mod"
        @echo Compiling .\CHZ.f90
        @$(FC) -c -o "build\CHZ.o" $(FFLAGS) ".\CHZ.f90"

"build\dbcm.o": ".\dbcm.f90" "modules\constants.mod" "modules\mod_controldata.mod" "modules\mod_solution.mod" "modules\tsdata.mod" "modules\diff.mod" "modules\prcp.mod" "modules\soil.mod" "modules\bound.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\dbcm.f90
        @$(FC) -c -o "build\dbcm.o" $(FFLAGS) ".\dbcm.f90"

"build\DIFWAV.o": ".\DIFWAV.f90" "modules\mod_controldata.mod" "modules\mod_solution.mod" "modules\diff.mod"
        @echo Compiling .\DIFWAV.f90
        @$(FC) -c -o "build\DIFWAV.o" $(FFLAGS) ".\DIFWAV.f90"

"build\DIFWAV_QT.o": ".\DIFWAV_QT.f90" "modules\mod_controldata.mod" "modules\diff.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\DIFWAV_QT.f90
        @$(FC) -c -o "build\DIFWAV_QT.o" $(FFLAGS) ".\DIFWAV_QT.f90"

"build\DWCHCK.o": ".\DWCHCK.f90" "modules\mod_controldata.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\DWCHCK.f90
        @$(FC) -c -o "build\DWCHCK.o" $(FFLAGS) ".\DWCHCK.f90"

"build\HYDBND.o": ".\HYDBND.f90" "modules\mod_controldata.mod" "modules\tsdata.mod" "modules\bound.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\HYDBND.f90
        @$(FC) -c -o "build\HYDBND.o" $(FFLAGS) ".\HYDBND.f90"

"build\HYDSUB_QT.o": ".\HYDSUB_QT.f90" "modules\mod_controldata.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\HYDSUB_QT.f90
        @$(FC) -c -o "build\HYDSUB_QT.o" $(FFLAGS) ".\HYDSUB_QT.f90"

"build\INREBD.o": ".\INREBD.f90" "modules\mod_controldata.mod"
        @echo Compiling .\INREBD.f90
        @$(FC) -c -o "build\INREBD.o" $(FFLAGS) ".\INREBD.f90"

"build\MCSUB_QT.o": ".\MCSUB_QT.f90" "modules\mod_controldata.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\MCSUB_QT.f90
        @$(FC) -c -o "build\MCSUB_QT.o" $(FFLAGS) ".\MCSUB_QT.f90"

"build\module.o": ".\module.f90" "modules\util.mod"
        @echo Compiling .\module.f90
        @$(FC) -c -o "build\module.o" $(FFLAGS) ".\module.f90"
"modules\constants.mod" "modules\mod_controldata.mod" "modules\mod_solution.mod" "modules\tsdata.mod" "modules\diff.mod" "modules\prcp.mod" "modules\soil.mod" "modules\bound.mod" "modules\typedef.mod" "modules\morton.mod" : "build\module.o" .EXISTSONLY
        @echo Compiling .\module.f90
        @$(FC) -c -o "build\module.o" $(FFLAGS) ".\module.f90"

"build\PCP.o": ".\PCP.f90" "modules\mod_controldata.mod" "modules\prcp.mod" "modules\morton.mod"
        @echo Compiling .\PCP.f90
        @$(FC) -c -o "build\PCP.o" $(FFLAGS) ".\PCP.f90"

"build\QTMESH.o": ".\QTMESH.f90" "modules\mod_controldata.mod" "modules\mod_solution.mod" "modules\soil.mod" "modules\morton.mod"
        @echo Compiling .\QTMESH.f90
        @$(FC) -c -o "build\QTMESH.o" $(FFLAGS) ".\QTMESH.f90"

"build\READIN.o": ".\READIN.f90" "modules\constants.mod" "modules\mod_controldata.mod" "modules\mod_solution.mod" "modules\tsdata.mod" "modules\diff.mod" "modules\bound.mod"
        @echo Compiling .\READIN.f90
        @$(FC) -c -o "build\READIN.o" $(FFLAGS) ".\READIN.f90"

"build\SOL.o": ".\SOL.f90" "modules\mod_controldata.mod" "modules\mod_solution.mod" "modules\prcp.mod" "modules\soil.mod" "modules\morton.mod"
        @echo Compiling .\SOL.f90
        @$(FC) -c -o "build\SOL.o" $(FFLAGS) ".\SOL.f90"

"build\SWE.o": ".\SWE.f90" "modules\mod_controldata.mod" "modules\mod_solution.mod"
        @echo Compiling .\SWE.f90
        @$(FC) -c -o "build\SWE.o" $(FFLAGS) ".\SWE.f90"

"build\SWE_QT.o": ".\SWE_QT.f90" "modules\mod_controldata.mod" "modules\bound.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\SWE_QT.f90
        @$(FC) -c -o "build\SWE_QT.o" $(FFLAGS) ".\SWE_QT.f90"

"build\TIN.o": ".\TIN.f90" "modules\mod_controldata.mod" "modules\typedef.mod" "modules\morton.mod"
        @echo Compiling .\TIN.f90
        @$(FC) -c -o "build\TIN.o" $(FFLAGS) ".\TIN.f90"

"build\util.o": ".\util.f90" "modules\constants.mod"
        @echo Compiling .\util.f90
        @$(FC) -c -o "build\util.o" $(FFLAGS) ".\util.f90"
"modules\util.mod" : "build\util.o" .EXISTSONLY
        @echo Compiling .\util.f90
        @$(FC) -c -o "build\util.o" $(FFLAGS) ".\util.f90"

"build\ZBND.o": ".\ZBND.f90" "modules\mod_controldata.mod" "modules\bound.mod"
        @echo Compiling .\ZBND.f90
        @$(FC) -c -o "build\ZBND.o" $(FFLAGS) ".\ZBND.f90"


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2020-8-13 11:30:07 | 只看该作者
这里啥意思,重复?

QQ截图20200813112946.png (28.15 KB, 下载次数: 340)

QQ截图20200813112946.png

4

帖子

1

主题

0

精华

新人

F 币
27 元
贡献
12 点
板凳
 楼主| 发表于 2020-8-13 12:11:26 | 只看该作者
li913 发表于 2020-8-13 11:30
这里啥意思,重复?

我也很奇怪,点击build project之后,生成的Makefile就是这样了。

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
地板
发表于 2020-8-13 14:49:10 | 只看该作者
可能是递归引用。a中引用b,b中引用a。这是不对的。

4

帖子

1

主题

0

精华

新人

F 币
27 元
贡献
12 点
5#
 楼主| 发表于 2020-8-13 16:19:24 | 只看该作者
li913 发表于 2020-8-13 14:49
可能是递归引用。a中引用b,b中引用a。这是不对的。

但是这个问题很奇怪。这个代码原本是在nag fortran上运行没有问题,然后又用vs code运行一遍也没问题,最后换到simply Fortran就出现这个报错,代码没做过更改,难道是SF的设置问题?

81

帖子

0

主题

0

精华

专家

F 币
471 元
贡献
232 点

规矩勋章新人勋章元老勋章

QQ
6#
发表于 2020-8-15 09:53:15 | 只看该作者
你既然把工程管理交给 Simply Fortran 了,那么实在没必要再去阅读makefile

请你给出你的工程文件内容,告知包含哪些源代码文件。可以截图以说明。
彼岸,有永恒的守候...

4

帖子

1

主题

0

精华

新人

F 币
27 元
贡献
12 点
7#
 楼主| 发表于 2020-8-27 11:28:16 | 只看该作者
青衣巷 发表于 2020-8-15 09:53
你既然把工程管理交给 Simply Fortran 了,那么实在没必要再去阅读makefile

请你给出你的工程文件内容,告 ...

感谢回复,我这个工程里, 主程序是dBCM.f90,module.f90是大部分的模块,然后其它的f90文件都是各个subroutine。都放在一个目录下,结构还是比较简单的

QQ图片20200827112524.png (10.03 KB, 下载次数: 325)

QQ图片20200827112524.png
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-26 09:16

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表