&引用;找不到-lcrypto-lssl“;在Windows上使用OpenSSL和MinGW

&引用;找不到-lcrypto-lssl“;在Windows上使用OpenSSL和MinGW,c,windows,gcc,openssl,mingw,C,Windows,Gcc,Openssl,Mingw,正在尝试openssl的c代码,在命令提示符下编译时出现此错误 c:\openssl>gcc -lssl -lcrypto -o test test.c -IC:\openssl\include\ c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lssl c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bi

正在尝试openssl的c代码,在命令提示符下编译时出现此错误

c:\openssl>gcc -lssl -lcrypto -o test test.c -IC:\openssl\include\
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lssl
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lcrypto
collect2.exe: error: ld returned 1 exit status
现在我该怎么办,请帮忙

编辑: 甚至这些都没有帮助:

c:\openssl>gcc -o test test.c  -lssl -lcrypto -Ic:\openssl\include\
c:\openssl>gcc -o test test.c -I c:\openssl\include\ -L c:\openssl\lib -lssl -lcrypto
c:\openssl>gcc -o test test.c -Lc:\openssl\lib -lssl -lcrypto -Ic:\openssl\include\

首先,您需要使用mingw编译openssl,您链接到的二进制文件是使用visualstudio编译的,已经过时,并且包含安全漏洞

0.9.8支持已停止,因此我建议使用1.0.1+

安装ActivePerl并删除Stawberry Perl,因为它与openssl不兼容

从以下位置下载最新的1.0.1源代码(openssl-1.0.1q.tar.gz):

在将openssl源解压缩到的目录中的msys控制台中运行以下操作:

 $ perl Configure mingw --prefix=/c/openssl
 $ make depend
 $ make
 $ make install
然后运行compile命令:

gcc -o test test.c -Lc:\openssl\lib -lssl -lcrypto -Ic:\openssl\include\
编辑:
mingw在0.9.8上存在构建问题,因此请使用1.0.1或更高版本,并使用ActivePerl而不是草莓Perl。

例如,我的做法有所不同。
我从下载了编译后的二进制文件。
然后就和他们联系起来。使用-L将搜索目录添加到链接器(已解释)

最后,我以

g++ my_program.cpp -I"C:\Program Files (x86)\OpenSSL-Win32\include" -L"C:\Program Files (x86)\OpenSSL-Win32\lib\MinGW" -lssl -lcrypto

您似乎在
C:/openssl/
中拥有它,因此(冒着声明显而易见的风险)对您的环境进行必要的更改。

@iharob“只使用不同的平台”不是一个有效的评论。可能与重复。@mikedu95是的,我是从@iharob安装的。我既不喜欢也不讨厌您。我只是不喜欢这种居高临下的评论。OP可能有很好的理由使用Windows,要求OP使用不同的平台是没有帮助的。@jiteshpabla,你找到解决方案了吗?我也有同样的问题…
$perl Configure mingw--prefix=/c/openssl
-这个命令显示了一个错误:
sh:perl:command not found
我安装了草莓perl,但是现在我得到了这个错误:
无法打开perl脚本“Configure”:没有这样的文件或目录
编辑:已解决;我刚刚不得不转到openssl目录。但是现在出现了这个错误:
$gcc-o test test.c-Lc:\openssl\lib-lssl-lcrypto-Ic:\openssl\include test.c:8:25:致命错误:openssl/bio.h:没有这样的文件或目录#include^编译已终止。