【问题标题】:Error when launching application启动应用程序时出错
【发布时间】:2015-05-26 16:36:19
【问题描述】:

我已经在 Windows 7 的 VC2008 上重建了 QGIS 代码。

我在 exe 的文件夹中拥有所有正确的 DLL,并且可以看到它知道 QT DLL 在哪里。

当我启动应用程序时,我收到此错误:

程序入口点 ??4QPixmap@@QAEAAV0@$$QAV0@@Z 不能 位于动态链接库QtGui4.dll

我不知道从哪里开始让它工作。我检查了 QtGUI4.dll 以查看它正在加载,并带有一个虚拟应用程序。看起来不错。

任何帮助都会很棒。

【问题讨论】:

  • “我有所有正确的 DLL” - 为什么你确定你在 exe 的文件夹中有正确版本的 QtGui4.dll?这个错误似乎暗示了相反的意思。
  • 确保同一个编译器构建了 Qt 和 QGIS。我相信 Qt 的一些发行版预先打包了合适的 MinGW 来构建。您还可以设置自己的 MinGW 并用它编译 Qt 和 GSIS。这应该可以解决您的错误。
  • @sashoalm - 我的意思是,我在 make 文件中使用的所有引用;我添加到输出文件夹。但你是对的,QTGui4 可能不是所需的版本。
  • vtk.1045678.n5.nabble.com/…,他们有类似的问题,并且链接了错误的Qt版本。
  • 谢谢@sashoalm。我在构建中引用了 vs2008 库,但我的系统正在查看 vs2010 版本。我已经从我的机器上删除了所有额外的版本。有趣的是,我如何给出我想使用的版本的路径;但它忽略了它。或者加载顺序关闭。

标签: c++ qt qgis


【解决方案1】:

因为我的预感是正确的,所以将它作为答案发布:

此错误表明您的应用程序加载了错误的 Qt DLL。无论出于何种原因,它都在寻找和加载与构建它的 DLL 不同的 DLL。在您的情况下,结果发现它是为 VS2010 DLL 构建的 Qt4,而它需要为 VS2008 构建的 Qt4。

解决方案是确保它总能找到正确的 DLL - 将正确的 DLL 放在 EXE 的文件夹中,因为这通常是它寻找 DLL 的第一个位置。在 Windows 上,依赖%PATH% 或当前目录并不是一个好主意。

【讨论】:

    猜你喜欢
    • 2019-01-09
    • 2014-03-14
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2019-01-09
    相关资源
    最近更新 更多