qt4与fortran 90的连接

面临的问题是fortran与qt4联编,在qt/c++代码里要访问fortran的4个函数,和很多的数据结构。在c++里全部用extern “C”暴露出来。作了compiler specific的函数名和变量名调整。

试了G95编译fortran代码,与gcc v3进行连接,在传递数组指针时出现问题,疑是编译器级别的问题,无法解决。

找了gfortran,在新版的mingw gcc 4里已经集成里面,重新配置了mingw,安装包如下:

binutils-2.19.1-mingw32-bin
gcc-4.3.0-20080502-mingw32-alpha-bin
mingw32-make-3.81-20080326-2
mingwrt-3.15.2-mingw32-dev
mingwrt-3.15.2-mingw32-dll
w32api-3.13-mingw32-dev

先用gfortran编译了三个f90文件,生成 .o文件,如

gfortran –c module_sf_noahlsm.f90

然后在qt4 pro文件里添加,

OBJECTS += ./module_model_constants.o
./module_Noahlsm_utility.o
./module_sf_noahlsm.o

在LIBS里也需要添加 –lgfortran

qt4编译连接国;过,加载数据测试无误。实现了fortran 90与qt4的一种连接。当然不是最好的方式,有见人在讨论版上说通过修改qt4 spec文件实现直接在pro里添加.f90,调用gfortran直接进行编译,然后相连。这当然是最好的,但对于一般用途,上述方式也足够。

Leave a Reply

Your email address will not be published. Required fields are marked *