我正在尝试编译一个链接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软件包是否可能不包含静态编译所需的文件?
答案 0 :(得分:2)
好的,我解决了。在创建openssl包期间,将删除所有静态库。唯一的方法是下载PKGBUILD,然后将“staticlibs”添加到选项字段:
public static native void expose() {
return expose( MY_REQUEST );
}
通过这种方式,使用静态库重建包,它应该可以工作。