2013-02-22 4 views
0

Qt에서 사용자 인터페이스를 설계하고 있으며 장수의 이유로 향후 빌드에서 Qt Meta-Object Compiler를 사용하지 않아도됩니다. MOC는 표준 C++ 코드에서 특정 매크로를 구문 분석하고이를 기반으로 C++ 코드를 생성합니다.Qt MOC에서 생성 한 코드 설명서

제가 알고 싶은 것은 : 생성 된 코드의 문서는 어디에 있습니까? 생성 된 코드를 관련 클래스에 직접 작성하고 싶습니다. 이 작업은 현재 번거롭지 만 Qt가 사라지고 MOC가 사라지면 어떤 문제도 피함으로써 UI를 장기간 안정적으로 유지할 수 있습니다.

감사합니다.

편집 1 : 나는 Qt는 프레임 워크를 기반으로하지 않는 C++ 응용 프로그램은 Visual Studio에서 Qt를 기반 UI (Qt는하지 창조주)를 설계하고있다. 패키지 될 특정 라이브러리에서 링크 된 Qt 코드로 순수 C++로 빌드 할 수있는 코드를 배포 할 수 있기를 원합니다. Qt가 설치되지 않은 시스템에서이 코드를 빌드 할 수 있기를 원합니다. 그러므로 MOC를 피하는 욕망. Qt 팬들에게 불쾌감을주지 않으려 고하지 않습니다. Qt는 훌륭합니다. 그러나이 프로젝트에서 약간 다른 것을 필요로하기 때문에 "그냥 MOC 사용"에 대한 제안은 전혀 도움이되지 않습니다.

편집 2 : 내가 틀렸을 때 나는 인정할 만하다. 좀 더 생각하고 연구 한 후에, 내가 계획하고있는 것을 시도하는 것은 가치가 없다. MOC 생성 코드를 저장하고 배포해야합니다. 모두에게 감사드립니다.

+2

'moc'은 오랫동안 존재 해왔다. 나는 그것을 단계적으로 없애는 계획에 대해 모른다. 게다가 생성 된 코드는 내부 세부 사항으로 간주되므로 호환성 고려 사항없이 변경 될 수 있습니다. 간단히 말해서, 당신이'moc' 추상화 밑으로 몰래 들어가면 코드가 훨씬 더 취약해질 것이라고 강력히 믿는다. – Javier

+0

QT 전처리 단계를 거치지 않고 빌드 프로세스를 덜 복잡하게 만들고 순수한 C++을 사용하고 싶습니다. 이것은 가능해야하며, QT 생성 코드는 어딘가에서 사용할 수 있어야합니다. –

+2

이것은 어리석은 일입니다. Qt가 사라지는 것에 대해 걱정하고 있습니다. 따라서 moc 코드를 하드 코딩하고 싶습니까? Qt가 사라지면 어떻게됩니까? Qt 런타임을 대체하기 위해 당신은 무엇을 사용합니까? Qt의 다음 버전에서 하드 코딩 된 파일과 다른 방식으로 moc 코드가 작동 할 것으로 기대할 때 발생할 수있는 모든 문제는 무엇입니까? 코드의 변경 사항이 일반적으로 moc 생성 코드에 영향을 미칩니다. 변경시 moc없이 이러한 파일을 어떻게 생성합니까? 이것이 미래 지향적 인 사고 방식이라면, moc은 당신의 문제 중 가장 적은 것입니다. –

답변

5

코드에 moc 출력을 그대로 넣으면 소스 호환되지 않는 주요 버전의 Qt (현재 버전 5)보다 moc 출력 형식이 더 자주 변경됩니다 (현재 버전 67).

0

여기에있는 모든 사람들이 나에게 지적한 것처럼 MOC를 우회하려고하는 것은 가치가 없다. 내 솔루션은 소스 컨트롤에 MOC 생성 소스 파일을 저장하고 배포 용 메인 애플리케이션 코드와 함께 패키징합니다.