未明确引用`SHA1'

时间:2015-02-26 21:23:07

标签: c windows openssl codeblocks sha1

由于Code :: Blocks

的问题,我在这里发帖

我最近在linux中创建了一个正确编译和执行的项目。 现在我试图让它在Windows上运行。

问题

当我尝试编译时感谢Code :: Blocks我收到错误:     C:\用户\ PC \桌面\收藏\ verification.c     | 44 |未定义对`SHA1' |

的引用

这是我的配置:

  • 右键点击我的项目
  • 然后"构建选项"

在"链接器设置"我有:  -lws2_32进入"其他链接器选项"。

在"搜索目录"标签我有:

In" Compiler" :

  

.. \ .. \ .. \ .. \ OpenSSL-Win64 \ include

对应于我的Open SSL安装的包含文件

  

在链接器中:.. \ .. \ .. \ .. \ OpenSSL-Win64 \ lib

对应于Open SSL的lib

这里有来自编译问题的C代码的摘录:

    bool checkVol(Index* index, unsigned char* vol, int id_vol) {
        char outsha[40] = { 0 };
        unsigned char outbuf[SHA_DIGEST_LENGTH];

        SHA1(vol, sizeof(vol), outbuf);

        hexToString(outbuf, outsha);

        printf("%s\n", outsha);
        printf("%s\n", index->sha[id_vol]);

        if ( strcmp(outsha, index->sha[id_vol]) == 0 ) {
            printf("Volume %i is the same.\n", id_vol);
            return TRUE;
        }

        return FALSE;
    }

我不知道接下来要做什么让我的程序在Windows上运行... 有人知道好的配置吗?

感谢您的帮助。

PS:对不起我可能不好的英语:x

1 个答案:

答案 0 :(得分:2)

我终于设法解决了这个问题。

修复:

首先我已经删除了x64版本 然后安装" Win32 OpenSSL v1.0.1L"来自this link

然后使用以下配置更新我的构建选项:

在"链接器设置"我已经补充说:2' .a'来自

"C:\OpenSSL-Win32\lib\MinGW\"

更新"搜索目录"通过推荐:

"C:\OpenSSL-Win32\include"

编译器"标签

希望能帮到别人! :d