由于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
答案 0 :(得分:2)
我终于设法解决了这个问题。
修复:
首先我已经删除了x64版本 然后安装" Win32 OpenSSL v1.0.1L"来自this link
然后使用以下配置更新我的构建选项:
在"链接器设置"我已经补充说:2' .a'来自
"C:\OpenSSL-Win32\lib\MinGW\"
更新"搜索目录"通过推荐:
"C:\OpenSSL-Win32\include"
编译器"标签
希望能帮到别人! :d