我有一个链接ssl库(md5.h
)的C程序:
#if defined(__APPLE__)
# define COMMON_DIGEST_FOR_OPENSSL
# include <CommonCrypto/CommonDigest.h>
# define SHA1 CC_SHA1
#else
# include <openssl/md5.h>
#endif
在Linux和Mac Os X上,使用此命令行进行编译时,每件事情都能正常工作:
gcc program.c -o prog -lssl
现在我想为windows编译它,所以我在我的Debian上安装了MinGw,我试图用这个命令行交叉编译:
i586-mingw32msvc-gcc program.c -o program.exe -lssl
但是我得到了这个编译错误:
错误:openssl / md5.h:没有这样的文件或目录
为什么呢?我怎么解决这个问题 ?
答案 0 :(得分:2)
您需要为Windows构建的OpenSSL,编译器可以在其中找到它。 最简单的方法是从源代码构建,并安装到mingw编译器可以找到它的前缀(或将include和库路径传递给构建系统)。
OpenSSL是第三方库,因此它不属于mingw包。
答案 1 :(得分:0)
检查makefile.m32文件中的所有路径,它们一定有问题。
AFAIR你必须不是在cmd中编译它,而是在mingw-cmd中编译,它与mingw包一起安装。