나는 모든 백엔드 작업을 수행하기 위해 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을 사용합니다. 하지만 어디에서 사용합니까?
LIBS + = -lgfortran (그냥 검색했을 때) https://qt-project.org/forums/viewthread/19805 – cageman