0

我正在使用 CMake 在 Windows 上使用 Visual Studio 2010 Express 构建基于 Qt 的应用程序。使用 cmake 进行配置时,出现以下错误:

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

然后,当我尝试编译时,我收到了这个错误(在 Visual Studio 和 msbuild 中都尝试过):

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

我确定 Microsoft Visual C++ 2010 Express 没有附带我需要的可再发行组件。所以我去微软的网站下载了可再发行文件(适用于x86x64)。但是,安装后,我仍然收到上述配置和编译错误。有谁知道我做错了什么,或者如何解决我的问题?

4

1 回答 1

2

_WinMain@16是 Windows GUI 应用程序的入口点,因此源代码中缺少它,或者您没有编写 GUI 应用程序,在这种情况下,您的链接器标志不正确。

由于您使用的是 qt,因此请确保将 QtMain 库与您的项目链接。您可以通过在对 Find_Package 的调用中添加它来做到这一点,如下所示:

find_package(Qt4 4.7.0 COMPONENTS QtMain QtCore QtGui QtSQL Phonon REQUIRED)
于 2012-05-20T19:57:34.350 回答