2

我有一个需要在 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. 我原以为这将与完整安装一起提供。以前有没有其他人遇到过这种情况,或者知道为什么会发生这种情况?

4

1 回答 1

1

Shining Light 分布的正确库名称是libeay32(位于lib/libeay32.lib)。该库对应于libcrypto.

于 2013-10-23T09:42:02.713 回答