我刚刚在一台新PC上安装了Code Blocks 13.12,并尝试创建一个Fortran DLL项目。我使用MinGW获得了代码块,因此安装了Fortran编译器。 如果您创建一个新的Fortran DLL项目,代码看起来像这样
! A fortran95 lib program for G95
! By WQY
subroutine sub()
implicit none
write(*,*) "This is subroutine"
return
end
当你构建时,你会遇到以下错误:
||=== Build: Debug in FortranDLLTest (compiler: GNU GCC Compiler) ===|obj\Debug\main.o||In function `sub_':|
[...]\FortranDLLTest\main.f95|5|undefined reference to `_gfortran_st_write'|
[...]\FortranDLLTest\main.f95|5|undefined reference to `_gfortran_transfer_character_write'|
[...]\FortranDLLTest\main.f95|5|undefined reference to `_gfortran_st_write_done'|||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
这是我第一次尝试代码块,所以我没有线索。看起来某些东西没有链接但是不应该立即编译新项目吗?
答案 0 :(得分:2)
您正在使用gcc
编译Fortran代码。这很好,但您需要链接libgfortran
。我不知道代码块中是如何指定的,但您需要将-lgfortran
添加到编译标志中。
或者,您可以使用gfortran
作为编译器。如here所述,这可以通过选择" GNU Fortran编译器"来实现。来自"设置" - > "编译..."