2013-08-21 9 views
0

Qt를 기반으로하는 새 BB10 플랫폼에서 작업합니다.Cascades 프로젝트에 QObject 클래스가 포함 된 정적 라이브러리를 포함 할 수 없습니다.

저는 QObject 클래스를 정의하는 하나의 정적 라이브러리 프로젝트를 가지고 있습니다 (기본적으로 클래스는 신호를 보내고 슬롯이 몇 개 있습니다). 이 프로젝트는 잘 컴파일하고 내 캐스케이드 프로젝트에서 나는 이러한 오류를 얻을 때 건물이 라이브러리를 포함 할 때 편안한 libwhathever.a 파일

로 날을 제공합니다 에

  • 정의되지 않은 참조 닷컴 :: 바스코을 :: digipass :: sdk :: utils :: qrcodescanner :: MyClass :: staticMetaObject
  • 정의되지 않은 참조 com :: vasco :: digipass :: sdk :: utils :: qrcodescanner :: MyClass :: newQRCodeDetected (QString)
  • undefined refe com :: vasco :: digipass :: sdk :: utils :: qrcodescanner :: MyClass :: staticMetaObject 외부 위치 : c : \ Developer \ bbndk \ target_10_1_0_2342 \ qnx6 \ usr \ include \ qt4 \ QtCore \ qobject .H
  • 정의되지 않은 참조 닷컴에 :: 바스코 :: DIGIPASS :: SDK :: 유틸 :: qrcodescanner :: MyClass에 :: staticMetaObject 외부 위치 : 는 C : \ 개발자 \ bbndk \ target_10_1_0_2342 \ qnx6 \ USR \ 포함 \ QT4 \ QtDeclarative \ qdeclarative.h
  • 정의되지 않은 참조 에 COM : 바스코 :: DIGIPASS :: SDK :: 유틸 :: qrcodescanner :: MyClass에 :: staticMetaObject 외부 위치 : C : \ 개발자 \ bbndk \ target_10_1_0_2342 \ qnx6 \ USR \ 포함 \ QT4 \ QtDeclarative \ qdeclarative.h
  • 정의되지 않은 참조는 COM에 대한 VTABLE하는 닷컴 :: 바스코 :: DIGIPASS :: SDK :: 유틸 :: qrcodescanner :: MyClass에
  • 정의되지 않은 참조 VTABLE하기 :: 바스코 :: DIGIPASS :: SDK :: 유틸 :: qrcodescanner :: MyClass에

나는 내가 Q_OBJECT 매크로 처리 컴파일 단계를 그리워 용의자. 올바른 방향으로 가고 있습니까? mocqmake에 대해 들었지만 어떻게 빌드 프로세스에서 언제 어떻게 사용할 지 모르겠습니다.

답변

1

파일을 생성 할 때 Q_OBJECT을 사용하여 새 클래스를 도입 할 때마다 qmake를 재실행하는 것이 가장 좋습니다. 깨끗하게하고 qmake를 다시 실행 한 다음 프로젝트를 다시 빌드하면 문제가 해결됩니다.

0

내 소스 및 헤더 파일에서 qmake를 실행했지만 어떤 이유로 moc 파일이 생성되지 않았습니다.

실제로 Q_OBJECT를 정의하는 헤더 파일에서 moc를 실행하여 내 문제를 해결했습니다. 그것은 필요한 moc 파일을 생성하고 내 정의되지 않은 참조가 사라졌습니다.

+0

QMake는 소스가 아닌 프로젝트 파일에 대해 실행해야합니다. 필요한 모든 헤더에 moc가 실행되었습니다. –

+0

네, 맞습니다. 실제로 qmake를 실행하기 전에 간단한 .pro 파일을 만들었습니다. 결국 내가 필요한 것은 moc를 하나의 헤더에서 호출하는 것이고 나머지 컴파일은 개미 스크립트를 통해 이루어진다. – Ika