zlib和gdi32与OpenSSL?

时间:2016-11-17 13:33:57

标签: c windows openssl mingw zlib

这是Undefined reference to RSA_generate_key in OpenSSL?的后续问题我有一个生成RSA密钥的OpenSSL程序,如下所示:

#include <stdio.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>

int main(int argc, char* argv[]) 
{
    RSA *r = NULL;
    int ret;

    r = RSA_new();
    BIGNUM *bne = NULL;
    ret = RSA_generate_key_ex(r, 2048, bne, NULL);

    return 0;
}

当我用

编译时
gcc -I../include rsatest.c -lcrypto -L.

我在库gdi32和zlib中的函数中得到未定义的引用错误。

所以要纠正这个问题,我必须添加-lz和-lgdi32,作为

gcc -I../include/ rsatest.c -lcrypto -lz -lgdi32 -L.

我的问题是,静态的libcrypto和libssl自给自足吗?为什么我必须添加额外的库来使其工作?在编译库时我是否应该添加一个选项来防止这种情况?

我使用带有MinGW编译器的64位Windows。我在MSYS的帮助下制作了OpenSSL库并制作了。

0 个答案:

没有答案