2008-10-13 5 views
6

Qt 응용 프로그램을 해당 라이브러리와 연결하려고하는데 링커 (MinGW)가 다음과 같이 수백 줄을 분출하고 진행 방법을 확신 할 수 없습니다.Qt 응용 프로그램이 눈부시게 실패합니다.

 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 

답변

1

내가 어떤 Qt를 개발 한 이래로 동안이었다,하지만이 같은 메시지의 큰 숫자를 밖으로 분출 기억 만 몇 인스턴스가 있었다.

  • Qt를위한 파일 I 업그레이드 할 때 이런 일이 ... 공유 라이브러리보다 다른 버전이었고, 어떤 이유로 수동이 파일을 포함 업그레이드했다 포함합니다.
  • Qt 라이브러리가 모두 누락되었습니다. 컴파일러가 작동하는 것을 막연하게 기억하지만 링커가 처음 시작했을 때 실패했습니다.

ARM 프로세서를 대상으로 Qt 개발을하고 있었기 때문에 크로스 컴파일 할 때 추가적으로 혼란을 겪었습니다.

6

잘 모르겠지만 나에게 Unwind에 관한 내용을 분발하면 라이브러리가 예외와 함께 컴파일되는지 여부와 응용 프로그램이 예외와 함께 컴파일되는지 여부가 불일치 함을 알 수 있습니다.

당신이 예외를 원하는 경우, 있는지 확인하십시오 당신은 당신의 qmake를 파일에 다음 줄을 추가하여 그들을 활성화 : 당신이 예외를 원하지 않는 경우

CONFIG += exceptions 

또는 반대

CONFIG -= exceptions 
를 사용

그리고 무엇을 하든지 직접 C++ 컴파일러 옵션을 사용하지 마십시오. 내가 알고

0

이 가능한 이유 :

  1. 당신이를 gcc3 링커으로 gcc4 라이브러리를 연결하려고하면

    .
  2. 컴파일 명령의 끝 부분에 -lstdc++ 플래그가 필요합니다.
관련 문제