2014-01-26 3 views
1

나는 모든 백엔드 작업을 수행하기 위해 Fortran 소스 파일에서 함수를 호출하기 위해 사용하고자하는 QtCreator를 사용하여 설계 한 멋진 GUI를 가지고있다. 그리고 내가이 sum.f90 파일을 추가QtCreator의 Qt에서 Fortran 코드 호출하기

integer function addup (a, b) 
implicit none 
    integer a, b 
addup = a + b 
    return 
end 

: 내 QtCreator 버전은 Qt는 5.0.1에서 2.7.0을 기반으로 나는 두 숫자를 추가 sum.f90라는 이름의 파일에 간단한 포트란-90 프로그램을 작성 그래서 같은 소스에서 .PRO 파일 : 나는 다음과 같은 라인이 포함 된 헤더 파일 fortranlink.h을 만든 다음

SOURCES += forsum.f90 

:

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 

이러한 오류는 아마 발생을 표준 포트란 라이브러리는 어딘가에 -lgfortran을 사용합니다. 하지만 어디에서 사용합니까?

+3

LIBS + = -lgfortran (그냥 검색했을 때) https://qt-project.org/forums/viewthread/19805 – cageman

답변

1

@cageman의 대답은 정확합니다. LIBS + = lgfortran

관련 문제