【发布时间】:2015-09-15 10:40:53
【问题描述】:
我正在尝试编译一个链接 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软件包是否可能不包含静态编译所需的文件?
【问题讨论】:
-
这可能意味着
libcrypto没有静态版本? -
那么,让它工作的唯一方法就是自己编译库,不是吗?但奇怪的是,archlinux官方包编译时使用了shared选项,这里(wiki.openssl.org/index.php/Compilation_and_Installation)是这样写的:除了静态归档之外构建一个共享对象
标签: c linker openssl static-linking