使用 Visual Studio 调试 Qt
Debugging Qt with Visual Studio
如何在 Visual Studio 2005 中调试 Qt 4.8?
构建版本确实有效,但如果我尝试调试,我总是会收到此消息:
This application has failed to start because the application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more details, please see the application event log.
我该如何解决?谢谢!
更新
我使用 configure -platform win32-msvc2005
和 jom
而不是 nmake
为 Visual Studio 2005 重建 Qt(该死的太快了),现在得到以下错误代码:
The application was unable to start correctly (0xc0150002).Click OK to close the application.
更新2
如何修复 DLL 和错误消息?
依赖行者:
缺少 DLL
- MSVCP90D.DLL
- MSVCR90D.DLL
- API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
- API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
- DCOMP.DLL
- IESHIMS.DLL
错误信息
Error: The Side-by-Side configuration information for "c:\qt.8.6\bin\QTGUID4.DLL" contains errors.
Error: At least one required implicit or forwarded dependency was not found.
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
更新 3
我现在从头开始:
- 安装
qt-opensource-windows-x86-vs2008-4.8.6.exe
(从 qt-everywhere-opensource-src-4.8.6.zip
构建甚至会导致发布模式不再工作,找不到 QtGuid4.lib
和 QtGui4.lib
,但是从安装的 Qt 构建它找到库)
- 安装
qt-vs-addin-1.1.11-opensource.exe
jom distclean
"Error: File Makefile doesn't exist exit."
jom confclean
"Error: File Makefile doesn't exist exit."
configure -platform win32-msvc2005
jom
jom
的最后几行输出:
C:\Qt.8.6>jom
[...]
qimageiohandler.cpp
qimagereader.cpp
qimagewriter.cpp
qpaintengine_pic.cpp
qkeymapper_win.cpp
qiconloader.cpp
Code wird generiert...
Code wird generiert...
qimage.cpp
jom: C:\Qt.8.6\src\gui\Makefile.Release [tmp\obj\release_shared\qguiplatformpl
ugin.obj] Error 2
cl -c -FIqt_gui_pch.h -Yuqt_gui_pch.h -Fptmp\obj\release_shared\QtGui_pc
h.pch -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -w34100 -w34189 -GR -EHsc -DQT_SHA
RED -DQT_THREAD_SUPPORT -DUNICODE -DWIN32 -DQT_BUILD_GUI_LIB -DQT_NO_USING_NAMES
PACE -DQT_MAKEDLL -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -
DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -D_USE_MATH_DEFINES -DQT_NO_DIRECTDRAW -D
QT_USE_BUNDLED_LIBPNG -DPNG_NO_ASSEMBLER_CODE -DQT_NO_CUPS -DQT_NO_LPR -DQT_NO_O
PENTYPE -DQT_NO_STYLE_MAC -DQT_NO_STYLE_GTK -DQT_NO_STYLE_WINDOWSCE -DQT_NO_STYL
E_WINDOWSMOBILE -DQT_NO_STYLE_S60 -DQT_NO_EGL -DQ_INTERNAL_QAPP_SRC -DQT_NO_DIRE
CTWRITE -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_
HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DNDEBUG -I"..\..\include\QtCore" -I"..
\..\include" -I"..\..\include\QtGui" -I"tmp\rcc\debug_shared" -I"tmp" -I"..rdp
arty\wintab" -I"image" -I"..rdparty\libpng" -I"..rdparty\zlib" -I"..rdpart
y\zlib" -I"..rdparty\harfbuzz\src" -I"dialogs" -I"..\..\include\ActiveQt" -I"t
mp\moc\release_shared" -I"." -I"..\..\mkspecs\win32-msvc2005" -Fotmp\obj\release
_shared\ @C:\Users\fpieske\AppData\Local\Temp\qpicture.obj.5884.19719.jom
qpicture.cpp
qpictureformatplugin.cpp
qpixmap.cpp
qpixmapdata.cpp
Code wird generiert...
Code wird generiert...
jom: C:\Qt.8.6\src\gui\Makefile [release-all] Error 2
jom: C:\Qt.8.6\Makefile [sub-gui-make_default-ordered] Error 2
C:\Qt.8.6>
尝试以下操作:
- 打开命令提示符并遍历到您的 Qt .pro 文件所在的目录。
- 运行 以下命令 - qmake -tp vc {项目文件名}.
- 打开 Visual Studio 并浏览到同一目录。现在里面应该有一个生成的VS工程了。
- 打开项目。
- 在 VS 项目属性|配置属性|调试中设置任何环境或命令行参数。
- 构建应用程序的调试版本并运行它。
- 保存解决方案。
如果您遇到构建问题,可能是因为项目文件中存在不正确的转义字符串(至少就 VS 而言)。例如
DEFINES+=\"DEFINE_NAME=$$quote(\"SomeString\\")\"
暂时需要修改为:
定义+=\"DEFINE_NAME=$$quote(\"\"\"SomeString\"\"\")\"
我明白了!即将停止尝试使用 Visual Studio 进行调试并改用 Qt Creator。在阅读如何配置 Qt Creator 时,我阅读了有关安装 Windows SDK
的内容。使用 Qt Creator 进行调试仍然无法正常工作(未知调试器类型 "No Engine")但是安装 Windows SDK
解决了我在 Visual Studio!
中的调试问题
如何在 Visual Studio 2005 中调试 Qt 4.8? 构建版本确实有效,但如果我尝试调试,我总是会收到此消息:
This application has failed to start because the application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more details, please see the application event log.
我该如何解决?谢谢!
更新
我使用 configure -platform win32-msvc2005
和 jom
而不是 nmake
为 Visual Studio 2005 重建 Qt(该死的太快了),现在得到以下错误代码:
The application was unable to start correctly (0xc0150002).Click OK to close the application.
更新2
如何修复 DLL 和错误消息?
依赖行者:
缺少 DLL
- MSVCP90D.DLL
- MSVCR90D.DLL
- API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
- API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
- DCOMP.DLL
- IESHIMS.DLL
错误信息
Error: The Side-by-Side configuration information for "c:\qt.8.6\bin\QTGUID4.DLL" contains errors.
Error: At least one required implicit or forwarded dependency was not found.
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
更新 3
我现在从头开始:
- 安装
qt-opensource-windows-x86-vs2008-4.8.6.exe
(从qt-everywhere-opensource-src-4.8.6.zip
构建甚至会导致发布模式不再工作,找不到QtGuid4.lib
和QtGui4.lib
,但是从安装的 Qt 构建它找到库) - 安装
qt-vs-addin-1.1.11-opensource.exe
jom distclean
"Error: File Makefile doesn't exist exit."jom confclean
"Error: File Makefile doesn't exist exit."configure -platform win32-msvc2005
jom
jom
的最后几行输出:
C:\Qt.8.6>jom
[...]
qimageiohandler.cpp
qimagereader.cpp
qimagewriter.cpp
qpaintengine_pic.cpp
qkeymapper_win.cpp
qiconloader.cpp
Code wird generiert...
Code wird generiert...
qimage.cpp
jom: C:\Qt.8.6\src\gui\Makefile.Release [tmp\obj\release_shared\qguiplatformpl
ugin.obj] Error 2
cl -c -FIqt_gui_pch.h -Yuqt_gui_pch.h -Fptmp\obj\release_shared\QtGui_pc
h.pch -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -w34100 -w34189 -GR -EHsc -DQT_SHA
RED -DQT_THREAD_SUPPORT -DUNICODE -DWIN32 -DQT_BUILD_GUI_LIB -DQT_NO_USING_NAMES
PACE -DQT_MAKEDLL -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -
DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -D_USE_MATH_DEFINES -DQT_NO_DIRECTDRAW -D
QT_USE_BUNDLED_LIBPNG -DPNG_NO_ASSEMBLER_CODE -DQT_NO_CUPS -DQT_NO_LPR -DQT_NO_O
PENTYPE -DQT_NO_STYLE_MAC -DQT_NO_STYLE_GTK -DQT_NO_STYLE_WINDOWSCE -DQT_NO_STYL
E_WINDOWSMOBILE -DQT_NO_STYLE_S60 -DQT_NO_EGL -DQ_INTERNAL_QAPP_SRC -DQT_NO_DIRE
CTWRITE -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_
HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DNDEBUG -I"..\..\include\QtCore" -I"..
\..\include" -I"..\..\include\QtGui" -I"tmp\rcc\debug_shared" -I"tmp" -I"..rdp
arty\wintab" -I"image" -I"..rdparty\libpng" -I"..rdparty\zlib" -I"..rdpart
y\zlib" -I"..rdparty\harfbuzz\src" -I"dialogs" -I"..\..\include\ActiveQt" -I"t
mp\moc\release_shared" -I"." -I"..\..\mkspecs\win32-msvc2005" -Fotmp\obj\release
_shared\ @C:\Users\fpieske\AppData\Local\Temp\qpicture.obj.5884.19719.jom
qpicture.cpp
qpictureformatplugin.cpp
qpixmap.cpp
qpixmapdata.cpp
Code wird generiert...
Code wird generiert...
jom: C:\Qt.8.6\src\gui\Makefile [release-all] Error 2
jom: C:\Qt.8.6\Makefile [sub-gui-make_default-ordered] Error 2
C:\Qt.8.6>
尝试以下操作:
- 打开命令提示符并遍历到您的 Qt .pro 文件所在的目录。
- 运行 以下命令 - qmake -tp vc {项目文件名}.
- 打开 Visual Studio 并浏览到同一目录。现在里面应该有一个生成的VS工程了。
- 打开项目。
- 在 VS 项目属性|配置属性|调试中设置任何环境或命令行参数。
- 构建应用程序的调试版本并运行它。
- 保存解决方案。
如果您遇到构建问题,可能是因为项目文件中存在不正确的转义字符串(至少就 VS 而言)。例如
DEFINES+=\"DEFINE_NAME=$$quote(\"SomeString\\")\"
暂时需要修改为:
定义+=\"DEFINE_NAME=$$quote(\"\"\"SomeString\"\"\")\"
我明白了!即将停止尝试使用 Visual Studio 进行调试并改用 Qt Creator。在阅读如何配置 Qt Creator 时,我阅读了有关安装 Windows SDK
的内容。使用 Qt Creator 进行调试仍然无法正常工作(未知调试器类型 "No Engine")但是安装 Windows SDK
解决了我在 Visual Studio!