openssl的链接错误(尝试SH1示例)

linker error with openssl (trying SH1 example)

本文关键字:SH1 示例 尝试 链接 错误 openssl      更新时间:2023-10-16

我试图编译一个如何实现SHA1的例子,但我一直得到这个错误:

[Linker Error] Unresolved external '_SHA1' referenced from C:PROGRAM FILES (X86)BORLANDCBUILDER6PROJECTSUNIT1.OBJ

我从他们的网站下载了openssl文件,我试着把headers目录复制到我的项目目录,把它复制到我的包括目录,但没有。

下面是示例代码:

#include <string.h>
#include <openssl/sha.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
    int i;
    unsigned char ibuf[] = "compute sha1";
    unsigned char obuf[20];
    SHA1(ibuf, strlen(ibuf), obuf);
    for (i = 0; i < 20; i++) {
        printf("%02x ", obuf[i]);
    }
    printf("n");
    return 0;
}x

p。S:我用的是Borland c++ Builder 6

您可以通过" add to project…"将OpenSSL .lib文件添加到您的项目中,或者使用#pragma comment

#pragma comment(lib, "ssl_lib_file_here.lib")
int main(int argc, char* argv[])

我从他们的网站下载了openssl文件,

…除了没有扩展名为'的文件。

在我下载的安装程序目录下安装

你需要使用Shining Light的Win32OpenSSL或自己构建OpenSSL。

如果你使用Shining Light的版本,那么一切都已经构建好了。虽然Thomas Hruska将Win32OpenSSL与OpenSSL版本保持同步,但我认为他没有提供任何与您正在使用的c++ Builder 6(大约2002年)版本兼容的东西。

如果你想从Win32平台上的源代码构建OpenSSL,那么请参见OpenSSL发行版根目录下的INSTALL.W32INSTALL.W64

我相信你还有第三种选择。这个选择就是获取一个现代的IDE。微软提供了Visual Studio的试用版(试用版的链接在页面的右侧)。Embarcadero还提供了c++ Builder XE5的免费试用版。