24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1388  |  回复: 3

bagboo

捐助贵宾 (小有名气)


[交流] 【求助】f90子程序怎么编译错误?请大家帮忙,谢谢

我是菜鸟!请大家帮忙!
在主程序编译通过后,我想单独编译名称为readpol.f90的子程序,在Ubuntu linux下输入gfortran readpol.f90后,出现如下错误:
/usr/lib/gcc/i486-linux-gnu/4.4.3/libgfortranbegin.a(fmain.o): In function `main':
(.text+0x27): undefined reference to `MAIN__'
collect2: ld returned 1 exit status

在网上查了相关的资料后,其中有人说:
to fix the above error I needed to attach a -c compiler flag so that an object module was created without a progam. The error message was because the compiler was expecting to find a main program that called this subroutine.

但是如何attach a -c compiler flag 呢?请大家帮忙,谢谢!
http://pic.muchong.com/file.php?id=219

[ Last edited by bagboo on 2010-12-22 at 06:45 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bagboo(金币+5):谢谢,请再帮忙 2010-12-22 11:46:24
余泽成(金币+1):谢谢参与应助! 2010-12-24 16:35:55
这是一个子程序吧,你只能用 gfortran -c readpol.f90 来得到一个 readpol.o 的目标文件,然后再与主程序链接起来。

我的问题是,你为什么要从一个完整的程序中,抽一个子程序出来编译呢?
2楼2010-12-22 08:32:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bagboo

捐助贵宾 (小有名气)


引用回帖:
Originally posted by snoopyzhao at 2010-12-22 08:32:33:
这是一个子程序吧,你只能用 gfortran -c readpol.f90 来得到一个 readpol.o 的目标文件,然后再与主程序链接起来。

我的问题是,你为什么要从一个完整的程序中,抽一个子程序出来编译呢?

1.
因为主程序运行中间生成的某些文件,例如*.pol是“unformatted file”。而我需  要读取这些文件的内容,再利用其他程序如origin中作图,所以就想到能不能将子程序readpol.f90文件编译成可执行的文件,来读取*.pol文件的内容。不知道我的想法对不对?
2.请问有没有其他的软件来读取用Fortran程序生成的unformatted file,如果能的话就不用这么麻烦了,谢谢!
3楼2010-12-22 11:55:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bagboo(金币+15):谢谢 2010-12-24 11:24:49
余泽成(金币+1):谢谢参与应助! 2010-12-24 16:36:12
引用回帖:
Originally posted by bagboo at 2010-12-22 11:55:15:

1.
因为主程序运行中间生成的某些文件,例如*.pol是“unformatted file”。而我需  要读取这些文件的内容,再利用其他程序如origin中作图,所以就想到能不能将子程序readpol.f90文件编译成可执行的文件,来读取 ...

你可以将 readpol.f90 独立出来,但需要自己写一个主程序来调用它,或者将它改写成一个独立的程序,而不是一个子程序……
4楼2010-12-22 19:02:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bagboo 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见