Fix Android编译openssl问题一例
issue
ubuntu升级了openssl 之后 编译出现问题如下:
sign-file.c:(.text.startup+0x4f):对‘OPENSSL_init_crypto’未定义的引用
sign-file.c:(.text.startup+0x5b):对‘OPENSSL_init_crypto’未定义的引用
sign-file.c:(.text.startup+0x26c):对‘OPENSSL_init_crypto’未定义的引用
分析
从log看 是对加密库的使用有问题
解决
- 终端输入命令 pkg-config --list-all | grep crypto 查看有没有 libcrypto 库
- 查看如何调用该库,输入命令 pkg-config --libs libcrypto
输出 -L/usr/local/lib -lcrypto - 源码中修改
android/kernel/msm-4.4/scripts/Makefile
before:
after:HOSTLOADLIBES_sign-file = -lcrypto HOSTLOADLIBES_extract-cert = -lcrypto
HOSTLOADLIBES_sign-file = -L/usr/local/lib -lcrypto HOSTLOADLIBES_extract-cert = -L/usr/local/lib -lcrypto
总结
权宜之计 仅供参考
应该可以修改linux环境来更优雅实现,欢迎讨论