回 帖 发 新 帖 刷新版面

主题:gfortran编译

我现在有一个程序是用fortran和c混编的,原来是串行的程序,现在改成了并行程序,请问下在gfortran下面编译程序的命令怎么写啊?请高手赐教。比如我现在有a.f90和b.c的这两个源文件。先谢谢了。

回复列表 (共5个回复)

沙发

取决于你的入口main函数在 a.f90里还是b.c里,也取决于gfortran版本

gfortran版本如果在4.4之下的话,以下的-lgfortran更改成-lgfortranbegin -lgfortran

如果main在a.f90
       gfortran a.f90 b.c
      或者
      gcc a.f90 b.c -lgfortran
如果main在b.c里
       gcc a.f90 b.c 
       
如果链接有错误,大多数是编译的gcc的问题,看看提示什么错误,来决定是不是加-lgcc -lgfortran,一般来说-lgcc是默认链接的,不需要加

板凳

dongyuanxun,谢谢您的解答。我先试试。

3 楼

继续求教:我的程序的入口在a.f90里面,a.f90里面使用了c.f90的module,我现在在gfortran下面使用gfortran -fopenmp a.f90 c.f90 b.c -o mainpro.exe出现了如下的提示:
use aaa
can not open module file 'aaa.mod'。
这个要如何解决呢?还有有没有这方面的文档,请给个名称。新手,多包涵。

4 楼

[quote]继续求教:我的程序的入口在a.f90里面,a.f90里面使用了c.f90的module,我现在在gfortran下面使用gfortran -fopenmp a.f90 c.f90 b.c -o mainpro.exe出现了如下的提示:
use aaa
can not open module file 'aaa.mod'。
这个要如何解决呢?还有有没有这方面的文档,请给个名称。新手,多包涵。[/quote]

gfortran -c c.f90
gfortran -fopenmp a.f90 b.c -o mainpro.exe

文档gcc wiki上都有,http://gcc.gnu.org/wiki/GFortran

5 楼

see。 3q

我来回复

您尚未登录,请登录后再回复。点此登录或注册