我有一个很好的GUI,我使用QtCreator设计,我想用它来调用Fortran源文件中的函数来完成所有的后端工作。我的QtCreator版本是基于Qt 5.0.1的2.7.0 我在一个名为sum.f90的文件中写了一个简单的fortran-90程序来添加两个数字:
integer function addup (a, b)
implicit none
integer a, b
addup = a + b
return
end
然后我将这个sum.f90文件添加到.pro文件中,如下所示:
SOURCES += forsum.f90
然后我创建了一个包含以下行的头文件fortranlink.h:
extern "C"
{
extern int addup_(int*,int*);
}
然后我将这个头文件包含在我的主源文件“#include fortranlink.h”中,并将此addup_函数称为:
int a=2;
int b=3;
int result=addup_(&a,&b);
编译后,我收到以下错误:
Undefined reference to _gfortran_st_write
Undefined reference to _gfortran_transfer_character_write
Undefined reference to _gfortran_transfer_integer_write
Undefined reference to _gfortran_st_write_done
可能会发生这些错误,因为我没有使用-lgfortran在某个地方链接标准的fortran库。但是我在哪里使用它?
答案 0 :(得分:1)
@cageman的回答是正确的。 LIBS + = lgfortran