2016-09-20 5 views
0

완벽하게 작동하며 간단한 C++ 파일로 실행 파일을 생성하는 Fortran과 C++ 오브젝트 파일을 혼합하려고합니다. 그러나 동일한 Fortran 객체 파일을 주 C++ 코드 (매우 크고 복잡한 코드)와 혼합하려고 할 때 아래 나열된 오류가 발생합니다. 나는 -lgfortran의 위치를 ​​가지고 놀았지만 행운은 없다.gfortran과 g ++ 컴파일을 혼합 할 때 정의되지 않은 참조

사용되는 명령은

g++ -o test *.o -static -lpthread -L/usr/local/lib -lquadmath -lgfortran 

과 순열의 모든 종류도 시도되고있다.

오류는 다음과 같습니다

gcc_4_9_2_release/libgfortran/io/write_float.def:1300: undefined reference to `signbitq' 
gcc_4_9_2_release/libgfortran/io/write_float.def:1300: undefined reference to `finiteq' 
gcc_4_9_2_release/libgfortran/io/write_float.def:1213: undefined reference to `finiteq' 
gcc_4_9_2_release/libgfortran/io/write_float.def:1300: undefined reference to `isnanq' 
+1

Gfortran 4.9는 gcc와 g ++ 4.9에서는 작동하지만 다른 컴파일러에서는 작동하지 않습니다. – tim18

+0

gfortran과 g ++는 같은 버전 인 4.9를 사용하고 있으며 간단한 예제 코드로 작업하고 있습니다. – musafir

+2

오류 메시지의 원인이되는 명령을 표시해야합니다. 또한 작은 예제를 격리하려고 시도해야합니다. –

답변

0

근무 명령은

 g++ -static -o test *.o -lgfortran -lpthread -L/usr/local/lib -lquadmath 
0

'나노'는 c.o 나는 아마 당신이 필요로 밑줄 추측하고있는 fortran.o 모두이다.

+0

기호가 C 기반 libquadmath에서 나왔을 가능성은 거의 없습니다. 실제로 OP가 솔루션을 이미 발견했음을 쉽게 알 수 있습니다. 그는 이미 그의 질문에 대답했다. 이것은 정말로 논평이었습니다. –