linux 编译安装GmSSL记录
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/$(BASENAME)
HTMLDIR=$(DOCDIR)/html
# MANSUFFIX is for the benefit of anyone who may want to have a suffix
# appended after the manpage file section number. "ssl" is popular,
# resulting in files such as config.5ssl rather than config.5.
MANSUFFIX=
HTMLSUFFIX=html
CROSS_COMPILE=
CC= $(CROSS_COMPILE)gcc
CFLAGS=-DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DGMI_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"$(OPENSSLDIR)\"" -DENGINESDIR="\"$(ENGINESDIR)\"" -Wall -O3 -pthread -m64 -DL_ENDIAN -Wa,--noexecstack -Wl,-rpath=$(LIBRPATH)
CFLAGS_Q=-DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DGMI_ASM -DPOLY1305_ASM -DOPENSSLDIR=\"\\\"$(OPENSSLDIR)\\\"\" -DENGINESDIR=\"\\\"$(ENGINESDIR)\\\"\" -Wa,--noexecstack -Wl,-rpath=$(LIBRPATH)
LDFLAGS=
PLIB_LDFLAGS=
EX_LIBS= -ldl
LIB_CFLAGS=-fPIC -DOPENSSL_USE_NODELETE
# LIB_LDFLAGS=-Wl,-znodelete -m64
LIB_LDFLAGS=-Wl,-rpath=$(LIBRPATH) -znodelete -m64
DSO_CFLAGS=-fPIC -DOPENSSL_USE_NODELETE
DSO_LDFLAGS=$(LIB_LDFLAGS)
若已执行了make install命令则需要执行:make uninstall进行卸载,再进行make clean清除编译生成的过程文件。保存修改后的Makefile后重新运行make install进行安装。
查看效果:ldd /usr/local/bin/gmssl
linux-vdso.so.1 (0x00007fff81994000)
libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007f00a293a000)
libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007f00a25ee000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f00a25ca000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f00a25a9000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f00a23e8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f00a2a72000)
上述列出的动态链接库中libcrypto.so.1.1和libssl.so.1.1链接的路径已改为编译生成的库文件。至此可正常运行GMSSL。
linux 编译安装GmSSL记录相关推荐
- linux下运行yolo,deepin(linux)编译安装yolo v4测试效果
# 背景 五一放假的最后一天我也凑了个热闹,试一下新鲜出炉的yolo v4, 由于没有装CUDA和CUDNN,只试了一下在CPU上的速度和效果,电脑环境及编译依赖如下: * deepin 15.11桌 ...
- linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14的方法对于 我这个小菜菜来讲是非常的复杂的还好有这篇文章,下面一起来看看吧. 一.使用系统镜像文件配置本地yum源 1 ...
- linux libvpx编译安装,linux编译安装时常见错误解决办法
**configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution** 复 ...
- Linux编译安装GCC-5.1.0
2019独角兽企业重金招聘Python工程师标准>>> Linux编译安装GCC-5.1.0 Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是G ...
- linux编译安装nginx失败怎么办?排错思路及方法
1.分析: nginx编译安装失败一般会出现在三个方面 编译环境安装不全 安装的时候参数出错 配置文件修改出错 2.编译环境安装不全 如果你的编译环境安装的不全,在你编译安装的时候可能会报错 [roo ...
- linux游戏编译,Linux编译安装开源3D赛车游戏Vdrift
Linux编译安装开源3D赛车游戏Vdrift,跟大家分享 首先,去http://vdrift.net/ 下载源代码包,我下载的version是2009-6-15 然后解压vdrift-2009-06 ...
- Linux编译安装qt5.9,Linux CentOS7 安装 Qt 5.9.2
Linux CentOS7 安装 Qt 5.9.2 参考链接 http://doc.qt.io/qt-5/linux.html sudo yum groupinstall "C Develo ...
- linux rsync yum安装,Linux安装yum安装rsync 、Linux编译安装最新版rsync
Loading... # Linux安装yum安装rsync .Linux编译安装最新版rsync ## 针对CentOS采用 yum 安装 ### 安装 ``` yum install rsync ...
- Linux笔记-Centos7编译安装GmSSL
这里我的OpenSSL版本为1.0.2 先升级到1.1.0 wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1-stable.z ...
最新文章
- linux命令安装openssl函数库,ubuntu安装openssl库
- DX:ASPxGridView使用选择事件的前置条件
- python类库丰富吗_Rich库:丰富你的Python程序终端输出
- php中的unlink(),unset(),rmdir()删除函数
- python创建一个txt文件-python中如何创建一个txt文件
- 前台提示_提示一下大家,如果考试科目不合格,可以到前台自助机查询
- MYSQL优化---hidba
- Spring在Java Filter注入Bean为Null的问题解决
- SQL LIKE通配符 模糊查询
- 改MD5防止你的视频被百度云秒和谐
- RedHat 下载地址
- 常见笔顺错误的字_容易出错的汉字|汉字中哪些字笔顺容易错
- ABB机器人DSQC406 3HAC036301-00104伺服驱动器故障报警维修
- pdf关键字高亮 java_Java查找并高亮PDF文本过程解析
- 苹果手机电池健康怎么看_电池的循环次数怎么看?关系到手机电池寿命
- 苹果 python蚂蚁森林自动收能量_PythonAuto.js:实现蚂蚁森林自动收能量(懒人的高效生活)...
- 【C语言】求两个数的最大公约数
- 重读DRRN(深度递归残差网络)
- 微信开通检测软件的使用方法(入门教程)
- Facebook也要玩智能眼镜
热门文章
- java反编译工具(class转java)
- Android 适配Dark Theme(暗黑模式),Android高级工程师必备知识
- 老司机都在用的浏览器,体积小功能齐全,直呼内行
- 将VS编译器默认为X64
- Oracle-分析函数之sum(...) over(...)
- 推荐一个资料:数学之美-by-吴军.pdf
- 利用Word解锁注册表
- [附源码]SSM计算机毕业设计网上鞋店管理系统JAVA
- JAVA代码行数统计工具(是时候看看程序员真实的的代码量了)
- 西门子S7-200SMART介绍及实例编程