我在这里发帖是因为代码::Blocks有问题
我最近在linux中创建了一个正确编译和执行的项目。
现在我试着让它在窗户上工作。
问题
当我试图编译代码::块时,收到错误:
C:\用户\PC\Desktop\Collector\verification.C
|44 |未定义对“SHA1”的引用|
以下是我的配置:
右键单击我的项目
然后“构建选项”
在“链接器设置”中,我有:
-lws2_32进入“其他链接器选项”。
在“搜索目录”选项卡中,我有:
在“编译器”中:
..\..\..\..\OpenSSL-Win64\include
对应于Open SSL安装的include文件
在链接器中:…\..\..\..\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上运行。。。
有人知道好的配置吗?
谢谢你的帮助。
很抱歉我的英语可能不好:x

最佳答案

我终于自己解决了这个问题。
修复:
所以首先我删除了x64版本
然后从this link安装“Win32 OpenSSL v1.0.1L”
然后使用以下配置更新我的生成选项:
在“链接器设置”中,我添加了:来自

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

更新“搜索目录”放置:
"C:\OpenSSL-Win32\include"

在“编译器”选项卡中。
希望这对其他人有帮助!:天

关于c - 未定义对“SHA1”的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28752994/

10-14 12:30