2014-01-26 48 views
1

我有一個很好的GUI,我使用QtCreator設計,我想用它來調用Fortran源文件中的函數來完成所有後端工作。我QtCreator版基於Qt 5.0.1 2.7.0 我在一個名爲sum.f90文件寫了一個簡單的Fortran-90計劃將兩個數字相加:在QtCreator中調用來自Qt的Fortran代碼

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*); 
} 

然後我包括此頭文件中我的主要酸CE文件「的#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 

這些錯誤可能發生,因爲我不是在連接標準fortran庫在某處使用-lgfortran。但我在哪裏使用它?

+3

LIBS + = - lgfortran(只是Google搜索)https://qt-project.org/forums/viewthread/19805 – cageman

回答

1

@cageman的回答是正確的。 LIBS + = lgfortran