2012-05-20 6 views
0

저는 CMake를 사용하여 Visual Studio 2010 Express가 설치된 Windows에서 Qt 기반 응용 프로그램을 빌드하고 있습니다. cmake로 구성 할 때 나는 다음과 같은 오류 얻을 :MSVCP100.dll을 설치할 수 없습니다.

MSVCRT.lib(crtexew.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function ___tmainCRTStartup 
C:\Users\Kurtis\sandbox\UDJ-Desktop-Client\build\src\Release\UDJ.exe : fatal error LNK1120: 1 unresolved externals 

I를 그런 다음

System runtime library file does not exists: 
'MSVC10_REDIST_DIR-NOTFOUND/x86/Microsoft.VC100.CRT/msvcp100.dll 

System runtime library file does not exists: 
'MSVC10_REDIST_DIR-NOTFOUND/x86/Microsoft.VC100.CRT/msvcr100.dll 

을 내가 (그리고 msbuild를 함께 모두 Visual Studio에서 시도)이 오류를 받고 있어요 컴파일 할 때 Microsoft Visual C++ 2010 Express는 redistributable that I need과 함께 제공되지 않습니다. 그래서 재배포 가능 파일 (x86x64 모두)을 다운로드하기 위해 Microsoft의 웹 사이트를 방문했습니다. 그러나 설치 한 후에도 여전히 위의 구성 및 컴파일 오류가 발생합니다. 아무도 내가 뭘 잘못하고, 또는 내 문제를 해결하는 방법을 알고 있습니까?

답변

2

[email protected]은 Windows GUI 응용 프로그램의 진입 점이므로 소스 코드에서 누락되었거나 GUI 응용 프로그램을 작성하지 않아서 링커 플래그가 올바르지 않습니다.

Qt를 사용하고 있으므로 QtMain 라이브러리가 프로젝트와 연결되어 있는지 확인하십시오.

find_package(Qt4 4.7.0 COMPONENTS QtMain QtCore QtGui QtSQL Phonon REQUIRED) 
+0

글쎄, 나는 실제로 GUI 응용 프로그램 (따라서 Qt는)을 쓰고 있어요, 그래서 내가 내 소스 코드 (16) @ _WinMain 누락 것 같아 : 당신은 너무 같은 Find_Package로 호출에 추가하여이 작업을 수행 할 수 있습니다. 비록 내가 어디에 넣을 지, 아니면 CMake가 나를 위해 다루어 져야 할 부분인지는 모르겠지만 ... –

+0

아, 물론, 주요 기능을위한 크로스 플랫폼 qt 래퍼 인 QtMain을 포함하는 것을 잊어 버렸습니다. 도와 주셔서 감사합니다! –

+0

@KurtisNusbaum 크로스 플랫폼이라고 확신하지 못하겠습니까? Windows에서만 존재한다고 생각했습니다. – Fraser