我有一个我需要在Windows7上编译的C文件。我为gcc安装了MinGW。我还需要OpenSSL,所以请关注他们网站上的链接,并从Shining Light Productions下载完整的开发人员包(以及MS的64位Redistro包)。
当我尝试使用此命令编译我的文件时:
gcc -D_WIN32 -O2 -shared -Wl,--kill-at -lcrypto -I%JAVA_HOME%\include -I%JAVA_HOME%\include\win32 -IC:\OpenSSL-Win64\include -LC:\OpenSSL-Win64\lib -lm -std=c99 osaccess.c -o libosaccess.dll
我收到错误:
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lcrypto
collect2.exe: error: ld returned 1 exit status
我觉得特别奇怪的是,错误中使用的是unix风格的正斜杠。此外,路径是正确的,但情况并非如此。有效路径是C:\MinGW\bin...
我在任何地方都找不到任何加密库(libcrypto。*或crypt * lib。*),所以我想这就是它无法找到-lcrypto
的原因。我会认为这将完全安装。有没有其他人以前遇到过这种情况,或者知道为什么会发生这种情况?
答案 0 :(得分:1)
Shining Light发行版的正确库名称为libeay32
(在lib/libeay32.lib
处找到)。此库对应libcrypto
。