我一直在努力让我的应用程序正确部署了几个星期,现在(这是一个爱好),我只是不知道什么尝试。
我Qt Creator中(2.6.1)启动了一个新项目,选择应用程序 - > Qt Quick的2应用程序(内置元件)。 我调整了QML使背景蓝色和红色的文字:
main.qml
import QtQuick 2.0
Rectangle {
width: 360
height: 360
color: "blue" // Added!
Text {
text: qsTr("Hello World")
anchors.centerIn: parent
color: "red" // Added!
}
MouseArea {
anchors.fill: parent
onClicked: {
Qt.quit();
}
}
}
我使用Qt 5.0.1和86 MSVC 2010的编译器。 我内置的发行版本,它在QtCreator运行良好。 如果您需要更多的编译器的细节,我会后他们。
要部署,我创建了我的桌面称为一个新文件夹HelloWorld/
和复制一切从H:\Qt\Qt5.0.1\5.0.1\msvc2010\bin\*
和H:\Qt\Qt5.0.1\5.0.1\msvc2010\plugins\*
和“H:\ Qt的\ Qt5.0.1 \ 5.0.1 \ msvc2010 \ QML *进去,与HelloWorld.exe的版本一起执行。
矫枉过正? 是。 不过,我渴望。
当我在Windows 7中运行的HelloWorld / 64 HelloWorld.exe的位,应用程序运行正常。 但是,当我在这个复制的HelloWorld /文件夹到运行Windows XP的32位虚拟机,它显示了一个正常大小的窗口,但什么也没有(白色,无文本)。 当在窗口的中央单击,窗口关闭,因为它应该。
所以我装在Dependency Walker中的可执行文件,但没有显得与众不同(IESHIMS.DLL和WER.DLL是当然缺少的)。 我跑了启动配置文件,并获得红错误的转换:
GetProcAddress的(0x7C800000 [KERNEL32.DLL], “FlsAlloc”)从 “MSVCR100.DLL” 称为在地址0x78ABBA3B和返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x7C800000 [KERNEL32.DLL], “FlsGetValue”)从 “MSVCR100.DLL” 称为在地址0x78ABBA48和返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x7C800000 [KERNEL32.DLL], “FlsSetValue”)从 “MSVCR100.DLL” 称为在地址0x78ABBA55和返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x7C800000 [KERNEL32.DLL], “FlsFree”)从 “MSVCR100.DLL” 称为在地址0x78ABBA62和返回NULL。 错误:指定的程序无法找到(127)。
LoadLibraryExW( “C:\ Documents和Settings \老板\桌面\ HelloWorld的\平台\ qminimald.pdb”,00000000,DONT_RESOLVE_DLL_REFERENCES)返回NULL。 错误:%1不是有效的Win32应用程序(193)。
LoadLibraryExW( “C:\ Documents和Settings \老板\桌面\ HelloWorld的\平台\ qwindowsd.pdb”,00000000,DONT_RESOLVE_DLL_REFERENCES)返回NULL。 错误:%1不是有效的Win32应用程序(193)。
GetProcAddress的(0x7E410000 [USER32.DLL], “UpdateLayeredWindowIndirect”)从 “QWINDOWS.DLL” 称为在地址0x013A8749和返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x7C9C0000 [SHELL32.DLL], “SHCreateItemFromParsingName”)从 “QWINDOWS.DLL” 称为在地址0x013A8997和返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x7C9C0000 [SHELL32.DLL], “SHGetStockIconInfo”)在地址0x013A89C9从 “QWINDOWS.DLL” 调用并返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x7C800000 [KERNEL32.DLL], “GetTickCount64”)从 “QT5CORE.DLL” 称为在地址0x670726A7和返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x755C0000 [MSCTFIME.IME], “ImeGetImeMenuItems”)从 “IMM32.DLL” 称为在地址0x76397354和返回NULL。 错误:指定的程序无法找到(127)。
GetProcAddress的(0x4FDD0000 [D3D9.DLL], “Direct3DCreate9Ex”)在地址0x01487198从 “LIBEGL.DLL” 调用并返回NULL。 错误:指定的程序无法找到(127)。
我也试着运行调试版本,但我只有MSVC100 dll的64位版本,所以我不能将它们复制到XP的机器(我只能运行32位可再发行)。 我不知道我可以用什么其他工具来试图解决我的问题。
我知道我必须做一些愚蠢的,但我真的不能在互联网上找到任何帮助。 这真是令人沮丧花那么多时间开发的Qt应用程序,然后卡住尝试部署它。
我要指出的是,程序运行在Windows 7 32位虚拟机就好了(已安装MSVC2012可再发行后)。
我在跑步真正感兴趣的应用程序,运行非常奇怪在Windows XP中。 当我第一次运行它,窗口大小正常和几个文本字符串显示出来。 但没有一个矩形{}元素的显示。 我离开了应用程序运行几分钟,我自己做了一些咖啡,当我回到我的电脑,窗户是闪烁的任意形状和文本,文本光标的节拍! 那是什么呀?! 它看起来像一个基本的数学函数搞砸了,因此在不适当的大小和位置都被显示在界面的部分。 我甚至看到了鼠标光标的一个闪烁的真正界面显示出来(是的,随机的形状出现和消失的鼠标光标的节拍)。
一时兴起,我想使用的应用程序(点击这里,我知道存在一个文本框),来填充列表中的一个,和它的工作! 在应用程序运行完全正常,除了图形。 我知道的Qt 5.0返工一些OpenGL的处理,对不对? 难道这是我还没有安装一个bug,或者一个库?