程序加载(不正确)dll,即使它是静态链接的

时间:2015-02-06 07:56:55

标签: windows visual-c++ dll

我在Windows上构建了一些具有以下依赖关系的thrift代码:

  • open ssl
  • 节俭

设定:

  • Windows 7 64位
  • VS2013

目标:

  • 32位节俭app

我使用these instructions(32位版本)编译了开放的ssl,它生成了libeay32.libssleay32.lib。接下来,我创建了一个VS2013项目来构建依赖于open ssl的thrift库。在编译时,这个项目产生libthrift.lib,这是(据我所知)静态链接:

enter image description here

到目前为止一切都很好......

接下来,我构建我的节俭应用程序,再次静态链接:

enter image description here

然而,当我运行我的thrift应用程序时,我收到以下错误,抱怨不兼容的图像类型(x86 / x64):

enter image description here

为了找到原因,我在我的应用程序上运行了依赖性walker,却发现它在32位(!!!)mercurial安装中引入了64位ssl dll(!): / p>

enter image description here

我的理解是我的应用程序应该仅链接到已经静态链接开放ssl内容的libthrift.lib(上面)。

似乎我的理解不是划伤,但我对我出错的地方感到困惑......

0 个答案:

没有答案