GNU科学图书馆不会加载Qt

时间:2017-07-18 08:15:29

标签: qt dll plugins gsl

所以我正在使用Qt Creator制作Windows Qt应用程序。这个应用程序使用一些自制的启动时动态加载的插件。

其中一个插件使用GNU Scientific Library。当我在该插件中调用来自GSL的东西的代码时,加载失败,我在我的应用程序中收到日志警告(并且与插件相关的任何内容都不存在/不起作用)。当我注释掉GSL代码时,加载成功。

由于我必须将此项目传递给其他人或在某些服务器上提交它,因此我使用预编译的DLL和标头(我放在我自己的源文件夹中)而不是整个未编译的源。 DLL找到here

我猜不知道GSL错过了一些依赖关系或者没有正确加载。有没有人有经验或想法与之分享?

我也在尝试构建一个虚拟C ++项目,以查看哪些内容无法正常工作。这个假人甚至不是Qt应用程序,它只是一个沉闷的C ++控制台项目,只有一个主要调用一些gsl函数。现在这里Qt Creator无法编译,因为当它包含来自gsl的头文件并解析它们时,它会在其中的所有内部包含失败(没有这样的文件或目录)。他们看起来像

#include <gsl/gsl_some_content.h>

为什么它在那里失败而不在我的Qt App项目中?如果我硬核 - 用

替换那些包含
#include "gsl_some_content.h"

然后它编译但在运行时退出代码-1073741515,没有显示任何printfs(即使我在主要的开头有它们)。同样,如果我注释掉main的gsl部分,一切正常并且printfs显示。

编辑:还有一条信息:dumpbin / dependents给我一个错误:

Dump of file libgsl-19.dll

File Type: DLL

LINK : fatal error LNK1000: Internal error during DumpSections

  Version 9.00.30729.01

  ExceptionCode            = C0000005
  ExceptionFlags           = 00000000
  ExceptionAddress         = 009671A0 (00940000) "C:\Program Files (x86)\Common
Files\Microsoft\Visual C++ for Python\9.0\VC\Bin\link.exe"
  NumberParameters         = 00000002
  ExceptionInformation[ 0] = 00000000
  ExceptionInformation[ 1] = 00000004

CONTEXT:
  Eax    = 40000040  Esp    = 001CDDB0
  Ebx    = 02943A08  Ebp    = 001CDDD8
  Ecx    = 00000004  Esi    = 00000004
  Edx    = 0094405C  Edi    = 0000014C
  Eip    = 009671A0  EFlags = 00010246
  SegCs  = 00000023  SegDs  = 0000002B
  SegSs  = 0000002B  SegEs  = 0000002B
  SegFs  = 00000053  SegGs  = 0000002B
  Dr0    = 00000000  Dr3    = 00000000
  Dr1    = 00000000  Dr6    = 00000000
  Dr2    = 00000000  Dr7    = 00000000

提前致谢,

查尔斯

0 个答案:

没有答案