我在Windows上构建了一些具有以下依赖关系的thrift代码:
设定:
目标:
我使用these instructions(32位版本)编译了开放的ssl,它生成了libeay32.lib
和ssleay32.lib
。接下来,我创建了一个VS2013项目来构建依赖于open ssl的thrift库。在编译时,这个项目产生libthrift.lib
,这是(据我所知)静态链接:
到目前为止一切都很好......
接下来,我构建我的节俭应用程序,再次静态链接:
然而,当我运行我的thrift应用程序时,我收到以下错误,抱怨不兼容的图像类型(x86 / x64):
为了找到原因,我在我的应用程序上运行了依赖性walker,却发现它在32位(!!!)mercurial安装中引入了64位ssl dll(!): / p>
我的理解是我的应用程序应该仅链接到已经静态链接开放ssl内容的libthrift.lib
(上面)。
似乎我的理解不是划伤,但我对我出错的地方感到困惑......