[问题] 副程式错误讯息求助

楼主: takaoclass (高雄级)   2018-04-25 19:13:18
我写了两只f档,分别是主程式、副程式,语法应该没有错误,却在编译时跳出错误讯息。
程式码如下:
主程式:
PROGRAM pr
REAL AA,BB,CC
AA = 9.0
BB = 5.0
CALL MY_SUB(AA,BB,CC)
END
副程式:
SUBROUTINE MY_SUB(A,B,C)
REAL A,B,C
C = A + B
WRITE(*,*) C
RETURN
END
编译时却分别跳出以下错误讯息:
/tmp/ccbidGKt.o: In function `MAIN__':
pr.f:(.text+0x32): undefined reference to `sub_'
collect2:error :ld returned 1 exit status
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/crtl.o: In function
`_start':
(.text+0x20): undefined reference to `main'
collect2:error :ld returned 1 exit status
请问这是怎么回事?
作者: remia81   2018-04-25 19:32:00
call不用放C在里面,那是回传值
作者: PTT0207445 (我是乡民)   2018-04-26 17:41:00
end应改为end program prend应改为end subroutine sy_sub上次我回文中的问题这次又重复出现,是否哪里没看懂吗?我想我可能知道你的问题了,你有两个.f档,应该可以同时编译,gortran my_sub.f pr.f。如果要分别编译可以这样gfortran -c my_sub.f 这样会产生一个my_sub.o档,然后gfortran my_sub.o pr.f 这样编译连结产生执行档a.out你也可以不要分成两个档,直接把subroutine写在pr.f里,这样只要gfortran pr.f就行了。但我还是建议你既然是从头学起了,就不要再学77语法,直接从90开始,然后你需要至少一本书,中文书我推荐彭国伦的Fortran95程式设计http://www.sanmin.com.tw/product/index/000437833英文书我推荐Fortran 95/2003 Explained作者:Michael Metcalf, John Reid, and Malcolm Cohen
作者: jubilee2 (3321)   2018-05-07 11:21:00
楼上认真回!都可以开一篇回文了!赞!
作者: max533 (向阳花)   2018-06-09 19:09:00
路过推彭国伦那本,蛮不错的工具书
作者: martink   2018-07-13 11:59:00
Cdzu

Links booklink

Contact Us: admin [ a t ] ucptt.com