Fortran DLL新项目未在代码块中编译

时间:2015-12-01 15:43:47

标签: dll fortran codeblocks

我刚刚在一台新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)) ===|

这是我第一次尝试代码块,所以我没有线索。看起来某些东西没有链接但是不应该立即编译新项目吗?

1 个答案:

答案 0 :(得分:2)

您正在使用gcc编译Fortran代码。这很好,但您需要链接libgfortran。我不知道代码块中是如何指定的,但您需要将-lgfortran添加到编译标志中。

或者,您可以使用gfortran作为编译器。如here所述,这可以通过选择" GNU Fortran编译器"来实现。来自"设置" - > "编译..."