我正在尝试在Windows 8上的Code :: Blocks中执行fortran代码
program main
write (*,*) "hi"
stop
end
我得到的错误是
G:\Study\Programs\bairstow.o:bairstow.f undefined reference to `_gfortran_st_write'
G:\Study\Programs\bairstow.o:bairstow.f undefined reference to `_gfortran_transfer_character_write'
G:\Study\Programs\bairstow.o:bairstow.f undefined reference to `_gfortran_st_write_done'
G:\Study\Programs\bairstow.o:bairstow.f undefined reference to `_gfortran_stop_string'
G:\Study\Programs\bairstow.o:bairstow.f undefined reference to `_gfortran_set_args'
G:\Study\Programs\bairstow.o:bairstow.f undefined reference to `_gfortran_set_options'
=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===
我将.f文件复制粘贴到编译器本身的文件夹中并执行命令
gfortran.exe hello.f
成功生成并执行输出.exe文件。 我不确定我是否在C :: B中正确设置了编译器。我可能会缺少什么?
更新: 正如janneb所建议的,我添加了链接器库路径以便使用libgfortran-3.dll。 使用以下构建日志成功编译该文件:
mingw32-g++.exe -c G:\Study\Programs\bairstow.f -o G:\Study\Programs\bairstow.o
mingw32-g++.exe -o G:\Study\Programs\bairstow.exe G:\Study\Programs\bairstow.o "C:\Program Files (x86)\CodeBlocks\MinGW\bin\libgfortran-3.dll"
Process terminated with status 0 (0 minute(s), 1 second(s))
0 error(s), 0 warning(s) (0 minute(s), 1 second(s))
当我执行文件时,等待大约2分钟后,我收到以下错误: 我在链接库文件时犯了什么错误吗?
提示:它也搞砸了我的GNU C编译器。现在即使在取消链接libgfortran-3.dll之后,我也无法执行简单的helloWorld.c程序。
答案 0 :(得分:2)
打开C :: B IDE并转到"设置"并选择" GNU Fortran编译器"从选定的编译器和Clik按钮"设置为默认"最后点击"确定"
答案 1 :(得分:1)
根据错误消息,在通过C :: B进行编译时,您不会链接GFortran运行时库(libgfortran)。 gfortran.exe驱动程序自动处理这个,所以很可能你用gcc.exe编译,基于文件扩展名的gcc.exe可以调用Fortran编译器(f951),但不做链接的东西。 gfortran.exe可以。
无论如何,我从来没有在Windows上使用C :: B和gfortran,但希望上面的解释能给你一个提示,从哪里开始寻找。
答案 2 :(得分:0)
就我而言,我不得不执行其他步骤。转到Project-> Build options->,同时选择GNU Fortran编译器。