在 QtCreator 中从 Qt 调用 fortran 代码
Posted
技术标签:
【中文标题】在 QtCreator 中从 Qt 调用 fortran 代码【英文标题】:Calling fortran code from Qt in QtCreator 【发布时间】:2014-01-26 11:00:16 【问题描述】:我使用 QtCreator 设计了一个不错的 GUI,我想用它来调用 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 库。但是我在哪里使用它?
【问题讨论】:
LIBS += -lgfortran(刚刚用谷歌搜索)qt-project.org/forums/viewthread/19805 【参考方案1】:@cageman 的回答是正确的。 LIBS+=lgfortran
【讨论】:
以上是关于在 QtCreator 中从 Qt 调用 fortran 代码的主要内容,如果未能解决你的问题,请参考以下文章
在 linux 中从 qt creator 运行 lupdate 和 lrelease 命令
在 qt creator 中从 ..qml 文件生成 .cpp 和 .h 文件
Q_INVOKABLE 是不是需要在 Qt5 中从 QML 调用公共 QObject 函数?