C++ 在Linux for Windows上交叉编译Qt5

C++ 在Linux for Windows上交叉编译Qt5,c++,linux,windows,qt,C++,Linux,Windows,Qt,我最近使用本指南在Linux上交叉编译Windows程序: 但是,当我编译程序时,创建的可执行文件被破坏,无法运行程序。相反,存在一个错误,只有关闭它的选项。如果有人能回答为什么这样做,我们将不胜感激。下面我将列出一些事实。请在回答中具体说明(例如,如果原因是我可能在GUI中使用了windows不可用的东西,请提供操作系统之间不可用的示例)我在使用Qt时处于中等入门水平,因此如果我要求进一步解释答案,请提前原谅我 使用Qt Creator 2.8.1编译(基于5.1.1) 使用Crunchba

我最近使用本指南在Linux上交叉编译Windows程序:

但是,当我编译程序时,创建的可执行文件被破坏,无法运行程序。相反,存在一个错误,只有关闭它的选项。如果有人能回答为什么这样做,我们将不胜感激。下面我将列出一些事实。请在回答中具体说明(例如,如果原因是我可能在GUI中使用了windows不可用的东西,请提供操作系统之间不可用的示例)我在使用Qt时处于中等入门水平,因此如果我要求进一步解释答案,请提前原谅我

  • 使用Qt Creator 2.8.1编译(基于5.1.1)
  • 使用Crunchbang 11(基于Debian 7.0)
  • 通过使用“cd mxe&&make qtbase”和随后的“cd mxe&&make qt5”进行测试
  • 执行程序产生的错误(wine):
  • 执行程序时在终端上显示的调试:
  • 该程序在典型的Windows 7环境中不工作
  • 生成日志:

从最初的发帖时间开始,我可能需要几个小时来跟进。提前感谢所有积极投入的人。

我成功地在ArchLinux for Windows上交叉编译了一个程序。
您的windows计算机上有所有必需的DLL吗?
这是我的目录中的列表:

platforms <DIR>
 - qminimal.dll
 - qwindows.dll
sqldrivers <DIR>
 - qsqlite.dll
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Sql.dll
Qt5Widgets.dll
平台
-qminimal.dll
-qwindows.dll
sqldrivers
-qsqlite.dll
icudt51.dll
icuin51.dll
icuuc51.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Sql.dll
Qt5Widgets.dll

拥有所有DLL的正确版本也很重要。这些必须与用于交叉编译的MinGW版本匹配。此外,还需要平台目录及其两个DLL。对于我的应用程序,我还需要SQLite支持,因此有必要使用所需的dll创建另一个子目录。

您在哪个系统上?也许有一个用mingw构建的qt,您可以通过包管理器安装。还有:什么是compcal,它与口袋妖怪有什么关系错误似乎是源于您的代码的空指针访问。请显示生成日志好吗?查看类似的错误,wine的dll似乎有点。。缺乏。某些功能实际上缺失:)您在windows上试用过吗?也许“WineTracks comctl32在一个shell上可以修复它。@user3125280:我相信OP在W7上试过了。请参阅帖子:“该程序在典型的Windows7环境下无法运行”。我将在当前安装虚拟操作系统以加快测试速度时检查这一点