静态编译链接Openssl

时间:2015-09-15 10:40:53

标签: c linker openssl static-linking

我正在尝试编译一个链接openssl库的程序。当我动态编译时,我没有遇到任何问题。当我添加-static标志时出现问题,我收到此错误:

gcc  -g -static -static-libgcc -static-libstdc++  -o hmac-sha1-bios-x64 ../main.c -lcrypto -lm
/usr/bin/ld: impossibile trovare -lcrypto
collect2: error: ld returned 1 exit status
Makefile:10: set di istruzioni per l'obiettivo "hmac-sha1-bios-x64" non riuscito
make: *** [hmac-sha1-bios-x64] Errore 1

有没有人有任何想法如何编译静态openssl库?

我在/ usr / lib中查找了对libcrypto.a的一些引用,但我只得到了libcrypt.a。我正在使用archlinux,官方的openssl archlinux软件包是否可能不包含静态编译所需的文件?

1 个答案:

答案 0 :(得分:2)

好的,我解决了。在创建openssl包期间,将删除所有静态库。唯一的方法是下载PKGBUILD,然后将“staticlibs”添加到选项字段:

public static native void expose() {
    return expose( MY_REQUEST );
}

通过这种方式,使用静态库重建包,它应该可以工作。