1,在GMSSL官网下载源码包。
2,参考官网编译安装流程:http://gmssl.org/docs/quickstart.html
进行编译安装。
3,安装完毕后运行gmssl version出错如下:
gmssl:relocation error: gmssl: symbol BIO_debug_callback version OPENSSL_1_1_0d not defined in file libcrypto.so.1.1 with link time reference
网上查到的方案:
https://www.cnblogs.com/wangzihong0213/p/10856875.html
使用ldd查看gmssl使用的动态链接库位置,发现会使用linux-gun下存在的库,并没有链接编译源码生成的动态链接库。进行简单的拷贝可能导致无法预测的其他错误。
故思考后的解决方案:
思路:修改gmssl运行时使用的动态链接库为自身编译生成的库文件。
需要解决问题:1,如何修改动态链接库的链接路径,参见:https://blog.csdn.net/wh8_2011/article/details/79519293
得知编译源码时可以指定软件优先进行搜索的路径。即编译源码时使用参数:-Wl,rpath=选项
。故对Makefile做如下修改:(粗体字部分为我做的修改)
LIBRPATH=$(INSTALLTOP)/$(LIBDIR)
MANDIR=$(INSTALLTOP)/share/man
DOCDIR=$(INSTALLTOP)/share/doc/$