【问题标题】:Linker Problems with OpenSSL in Visual Studio 2013Visual Studio 2013 中 OpenSSL 的链接器问题
【发布时间】:2016-07-25 00:56:40
【问题描述】:

我在我的简单程序中使用了一个 OpenSSL 函数。但是我得到了那个函数的未解析符号。下面是我的项目属性设置 - 我关注了其他描述如何在项目中包含 OpenSSL 的帖子并执行了这些说明。我的 Visual Studio 2013 设置有什么问题?

错误 1 ​​错误 LNK2019:未解析的外部符号 _SHA1 在函数 _main 中引用

难道我使用的是 64 位 OpenSSL 版本?难道我的项目是<CharacterSet>Unicode</CharacterSet>

... Code generation = Multi-threaded Debug DLL (/MDd)

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>Disabled</Optimization>
      <SDLCheck>true</SDLCheck>
      <AdditionalIncludeDirectories>C:\OpenSSL-Win64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <AdditionalLibraryDirectories>C:\OpenSSL-Win64\lib;C:\OpenSSL-Win64\lib\VC\static;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>libeay32.lib;libeay32MDd.lib;ssleay32.lib;ssleay32MDd.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
</ItemDefinitionGroup>

解决方案:

问题是当我应该链接到 32 位静态库时,我正在链接到 64 位静态库。这解决了它:

所以将所有&gt;C:\OpenSSL-Win64\... 更改为&gt;C:\OpenSSL-Win32\...。并安装 OpenSSL 32 位安装程序。

【问题讨论】:

    标签: visual-studio openssl static-linking win64


    【解决方案1】:

    问题是当我应该链接到 32 位静态库时,我正在链接到 64 位静态库。这解决了它:

    所以将所有C:\OpenSSL-Win64\... 更改为C:\OpenSSL-Win32\....。并安装 OpenSSL 32 位安装程序。

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多