본문 바로가기
C++ 200제/코딩 IT 정보

Qt LNK2001 LNK1120, moc 문제 (비주얼 스튜디오 2013)

by vicddory 2018. 5. 2.

Qt LNK2001 LNK1120, moc 문제 (비주얼 스튜디오 2013)


Qt를 비주얼스튜디오에서 사용하다 보면 moc 파일이 만들어지지 않아 LNK 2001, LNK 1120 에러가 발생할 수 있습니다.

이럴 경우 ui 파일과 엮이는 헤더 파일을 수정하여 moc를 정상적으로 만들어 LNK 2001, 1120 문제를 해결할 수 있습니다.


먼저, moc 파일을 만들 수 있게 Qt 헤더 파일을 오른쪽 클릭한 뒤 속성을 선택합니다.


moc 파일이 만들어지지 않는다는 항목 형식이 "빌드에 참여 안함"으로 되어 있을 겁니다. 이 부분을 아래처럼 "사용자 지정 빌드 도구"로 변경합니다.


일반 - 항목 형식 - 사용자 지정 빌드 도구


Qt LNK 2001 헤더 파일[Qt5 + 비주얼 스튜디오 2013] LNK 2001, 1120 해결


그러면 구성 속성 탭아래에 "사용자 지정 빌드 도구 - 일반" 탭이 새로 생성됩니다.


이곳에서 명령줄, 설명, 출력, 추가 종속성, 링크 개체, 출력을 콘텐츠로 처리까지 6개 항목을 설정합니다.


이 중에서 출력과 추가 종속성은 아래처럼 만들어주시고, 나머지 항목은 기존에 정상적으로 사용하던 파일의 사항을 그대로 복사하세요.


출력

.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp


추가 종속성

$(QTDIR)\bin\moc.exe;%(FullPath);%(AdditionalInputs)


Qt lnk 2001 1120 moc 파일[Qt5 + 비주얼 스튜디오 2013] LNK 2001, 1120 해결


비주얼 스튜디오에서는 Qt Creator과는 다르게 ui를 추가하는 과정이 자동화되지 않아 종종 이런 문제가 발생합니다.


그때는 당황하지 마시고, ui 파일, 헤더 파일, cpp 파일의 속성을 먼저 확인하세요.


Qt LNK2001 LNK1120, moc 문제 (비주얼 스튜디오 2013)

댓글