문제

그래서 Q_OBJECT 태그가 지정된 클래스가 있는데, 이를 사용하려면 미리 생성된 .moc가 필요합니다.

내 .qbs 파일에는 CppApplication 안건;qbs가 호출하지 않기 때문에 이것은 잘못된 프로젝트 유형인 것 같습니다. moc ClassName.cpp 나를 위해 moc를 생성합니다.대신 무엇을 사용하거나 조정해야 합니까?

-

그래서 나는 Qt.core 의존성에 대해 알고 있었지만, Qt의 손상된 설치에서는 작동하지 않았습니다.문제를 해결하려고 노력하는 동안 다음과 같은 사실이 나타났습니다.

  • Qt 툴체인(qbs-setup-qt) 그리고 전화 qbs-config-ui
  • Qbs는 실제로 Qt/core 종속성을 통해 연결된 core.qbs에 빌드 규칙을 저장합니다.
    • 빌드 규칙을 내 .qbs 파일에 복사/붙여넣고 외부 종속성을 피할 수 있습니다.나는 이것이 실제로 손상된 빌드 시스템에 코드를 배포하기 위한 더러운 해킹이라고 생각하고 있습니다(이제 Gentoo에서 Qt 지원에 대한 단어가 있습니다).
도움이 되었습니까?

해결책

Qt 모듈에 대한 애플리케이션의 종속성이 누락된 것 같습니다.moc 파일 생성 규칙은 Qt.core 모듈의 일부입니다.다음을 사용하여 이 종속성을 추가할 수 있습니다.

CppApplication {
    name: "MyApp"
    files: "path_to_source/**"

    Depends { name: "Qt.core" } // Optional
    Depends { name: "Qt.widgets" }
}

다른 모든 Qt 모듈은 Qt.core에 대한 암시적 종속성을 가지므로 다른 Qt 모듈(이 예에서는 Qt.widgets)에 대한 종속성이 있는 경우 Qt.core에 대한 명시적 종속성을 건너뛸 수 있습니다.

자세한 내용은 다음에서 확인할 수 있습니다. http://doc.qt.io/qbs/qt-modules.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top