2010-04-13 3 views
1

Qt를 처음 접했고 Qt를 처음 사용하는 다른 사람으로부터 프로젝트를 상속 받았습니다. 그는 이번 주에 btw가 아닙니다. 우리는 Visual Studio 2008을 사용하고 최신 버전의 Qt를 설치했습니다 (4.6.2).오류 메시지없이 Qt moc 오류가 발생했습니다.

프로젝트는 내 동료의 컴퓨터에서 잘 빌드되며 svn에서 프로젝트를 가져 와서 직접 빌드 할 수 있습니다. 그러나 다른 어떤 상황에서도 내 컴퓨터에서 빌드를 거부하고 왜 그런지 설명하지 못합니다. 비록 내가 단지 '깨끗하게해라.'그리고 나서 '빌드하다'라고해도 그것은 작동하지 않는다. 약간의 수정은 실패하게 만들 것입니다. 내가 오류 메시지가 전체 프로젝트를 빌드 할 때

:

1> Moc'ing MatrixTypeInterface.h ... 1> MOC가 :. 를 만들 수 없습니다 \ GeneratedFiles \ 디버그 \ moc_MatrixTypeInterface . cpp를, \ GeneratedFiles \ 디버그 \의 moc_matrixtypeinterface.cpp 1> 프로젝트 : 오류 PRJ0019 : 도구 이

상무부 도구 "... Moc'ing MatrixTypeInterface.h"에서 오류 코드를 반환 아무튼 어떤 종류의 왜 작동하지 않는지에 대한 오류 메시지가 표시되고 어제 대부분의 이유를 알아 내려고했습니다. VS가 moc를 호출하는 데 사용하는 명령이 있는데 명령 행에 직접 입력했습니다. 그것은 화면에 아무 것도 쓰지 않았다.

아이디어가 있으십니까?

답변

1

마침내 대답을 찾았습니다. 내 동료가 오늘 사무실에 돌아 왔고 그의 컴퓨터에서 로그를 작성하여 전체 moc 명령 (약 4 줄)을 가져 왔습니다. 우리의 moc 명령은 맨 끝을 제외하고 기본적으로 동일했습니다. 그의 명령은 다음과 같이 끝났다 :

-o ". \ GeneratedFiles \ $ (ConfigurationName) \ moc _ $ (InputName)... \ GeneratedFiles \ 디버그 \의 moc_matrixtypeinterface.cpp "

; \ GeneratedFiles \ $ (ConfigurationName) \ MOC _ $ (은 inputName) 통화 당 : CPP"

-o

내 명령은 끝났다 "

해당 파일에 대한 사용자 지정 빌드 단계를 검사하고 초과 비트를 제거한 후 파일이 잘 컴파일되었습니다. Qt가이 추가 튜토리얼을 추가하는 방법이나 이유가 무엇인지 모르겠지만 그 이유는 무엇입니까?

감사합니다. 당신 도움이 필요해. 몇 사람은 파일 시스템 문제라고 의심했고 실제로 Windows 파일 이름에는 세미콜론을 사용할 수 없습니다. 하지만 근본적인 원인은 Qt가 잘못된 빌드 문자열을 만드는 것이 었습니다.

다른 사람들에게 도움이 될 것이라는 희망으로 저의 답변을 수락하고 있습니다.

1

파일 시스템 오류 일 가능성이 높습니다. "GeneratedFiles"폴더가 없거나 여기에 올바른 권한이 없습니다.

다른 moc 및 추가 기능 버전에서는 폴더에 대해 "Generated"또는 "Generated Files"또는 "GeneratedFiles"를 사용하는 문제가있었습니다. 모든 빌드 단계의 설정을 확인하십시오.

+0

모든 파일 경로가 올 바르고 모든 파일 권한이 올바른 것입니다. 어제 동료의 프로젝트와 내 프로젝트/빌드 설정을 모두 확인했는데 다른 것을 찾을 수 없었습니다. 그는 오늘 여기에 없으므로 나는 아무것도 다시 점검 할 수 없다. –

0

.vcproj 파일이 손상되었을 수 있습니다. Qt의 다른 버전과 Qt VS 애드온으로 인해 .vcproj 파일이 손상되어이 문제가 발생했습니다. 잠시 동안 .vcproj 파일을 수동으로 수정해야했습니다 (My AdditionalDependencies = "..."행을 바꿔서 mocced 할 필요가있는 다양한 헤더 파일을 잘라 버렸습니다. mocced 할 필요가 있었다).

Visual Studio + Qt + Qt 부가 기능을 새로 재설치하면이 문제가 해결되었습니다. .vcproj 파일을 확인하고 그것이 의미가 있는지 확인하십시오.

0

moc가 실행되기 전에 파일 경로가 올 바르고 확실합니까? 상대 경로가 moc에 제공되는 것으로 보이기 때문에 moc의 작업 디렉토리가 실행될 때 어떤 디렉토리인지 알 수 있습니다.

.vcproj 파일은 어떻게 생성 되었습니까? qmake가 사용 되었습니까? 또는 cmake? 아니면 처음부터 그랬니?

관련 문제