2012-08-14 2 views
0

에 대한 빌드 난했습니다하여 사용자 정의에서 다음을 Q_OBJECT를 사용하는 모든 헤더 파일의 속성을 구축 :비주얼 스튜디오 2005 사용자 정의 Qt를

Command Line: $(THIRDPARTY_DIR)\qt\4.7.0\win32-vc10\bin\moc.exe $(InputFileName) -o moc\$(ConfigurationName)\moc_$(InputName).cpp 
Description: ################### moc'ing $(InputFileName) 
Outputs: moc\$(ConfigurationName)\moc_$(InputName).cpp 

이 필요한 MOC 파일을 생성합니다. 이제는 Visual Studio에 컴파일하고 다른 소스 파일과 링크하도록 요청하고 싶습니다. 현재 컴파일 및 연결을 강제로 수행하는 모든 파일에 #include "moc\{Release OR Debug}\moc_Whatever.cpp"# 문을 사용하고 있습니다. 분명히 나는 ​​내 # 변경 사항을 디버그 또는 릴리스 빌드에 따라 계속 변경해야합니다. 이유는 위의 moc 파일 생성 중에 $ (ConfiguarationName)을 삭제할 수 없습니다. 게다가 컴파일과 링크 목적으로이 소스 파일에이 #include을 쓰는 아이디어가 없다.

앞으로 어떤 파일이 생성 될지 언급하고 사용 가능할 때 컴파일하고 링크 할 수있는 모든 빌드 단계가 있습니까 (VS2005)?

답변

0

당신은 단순히 프로젝트에 해당 파일을 추가 (내가 지금 QtPlugin을 사용할 수 없습니다), 내 프로젝트 구조는 일반적으로 (비주얼 스튜디오 솔루션 탐색기에서) 다음과 같습니다

Solution 
    | 
    +- Project1 
      | 
      +- Generated Files 
      +- Header Files 
      +- Source Files 

생성 된 파일에서 , 둘 다 참조, 디버그 및 릴리스 moc_xxx.cpp 및 qrc_xxx.cpp 파일을 포함합니다. 디버그 파일의 경우 릴리스 참조에 대해 Build에서 Exclude를 true로 설정하고 그 반대로 설정해야합니다.

플러그인과 거의 같습니다.

+0

감사합니다. 한가지 더 질문 : 나는 링커 오류를 줄 수있는 프로젝트를 먼저 작성해야하지만 그때까지는 moc 파일이 생성 될 것입니다. 생성 된 GeneratedFiles 필터에 기존 항목을 추가 한 다음 성공적인 빌드를 위해 빌드 프로세스를 다시 실행합니다. moc'ing을 위해 저는'$ (InputFileName)'과 같은 VS 변수를 사용하고 있습니다. 그래서 나는 하나의'.h' 파일에서 또 다른 파일로 커스텀 빌드를 복사합니다. 내가하고있는 것처럼 수동으로 추가하는 대신 생성 된 moc 파일의 컴파일과 링크를 자동화하는 프로세스가 있습니까? – ustulation

+0

사실 그것은 정확하게 플러그인이하는 일입니다! 왜 그것을 사용할 수 없습니까? – Jens