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记录相关推荐

  1. linux下运行yolo,deepin(linux)编译安装yolo v4测试效果

    # 背景 五一放假的最后一天我也凑了个热闹,试一下新鲜出炉的yolo v4, 由于没有装CUDA和CUDNN,只试了一下在CPU上的速度和效果,电脑环境及编译依赖如下: * deepin 15.11桌 ...

  2. linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14的方法对于 我这个小菜菜来讲是非常的复杂的还好有这篇文章,下面一起来看看吧. 一.使用系统镜像文件配置本地yum源 1 ...

  3. linux libvpx编译安装,linux编译安装时常见错误解决办法

    **configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution** 复 ...

  4. Linux编译安装GCC-5.1.0

    2019独角兽企业重金招聘Python工程师标准>>> Linux编译安装GCC-5.1.0 Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是G ...

  5. linux编译安装nginx失败怎么办?排错思路及方法

    1.分析: nginx编译安装失败一般会出现在三个方面 编译环境安装不全 安装的时候参数出错 配置文件修改出错 2.编译环境安装不全 如果你的编译环境安装的不全,在你编译安装的时候可能会报错 [roo ...

  6. linux游戏编译,Linux编译安装开源3D赛车游戏Vdrift

    Linux编译安装开源3D赛车游戏Vdrift,跟大家分享 首先,去http://vdrift.net/ 下载源代码包,我下载的version是2009-6-15 然后解压vdrift-2009-06 ...

  7. 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 ...

  8. linux rsync yum安装,Linux安装yum安装rsync 、Linux编译安装最新版rsync

    Loading... # Linux安装yum安装rsync .Linux编译安装最新版rsync ## 针对CentOS采用 yum 安装 ### 安装 ``` yum install rsync ...

  9. Linux笔记-Centos7编译安装GmSSL

    这里我的OpenSSL版本为1.0.2 先升级到1.1.0 wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1-stable.z ...

最新文章

  1. linux命令安装openssl函数库,ubuntu安装openssl库
  2. DX:ASPxGridView使用选择事件的前置条件
  3. python类库丰富吗_Rich库:丰富你的Python程序终端输出
  4. php中的unlink(),unset(),rmdir()删除函数
  5. python创建一个txt文件-python中如何创建一个txt文件
  6. 前台提示_提示一下大家,如果考试科目不合格,可以到前台自助机查询
  7. MYSQL优化---hidba
  8. Spring在Java Filter注入Bean为Null的问题解决
  9. SQL LIKE通配符 模糊查询
  10. 改MD5防止你的视频被百度云秒和谐
  11. RedHat 下载地址
  12. 常见笔顺错误的字_容易出错的汉字|汉字中哪些字笔顺容易错
  13. ABB机器人DSQC406 3HAC036301-00104伺服驱动器故障报警维修
  14. pdf关键字高亮 java_Java查找并高亮PDF文本过程解析
  15. 苹果手机电池健康怎么看_电池的循环次数怎么看?关系到手机电池寿命
  16. 苹果 python蚂蚁森林自动收能量_PythonAuto.js:实现蚂蚁森林自动收能量(懒人的高效生活)...
  17. 【C语言】求两个数的最大公约数
  18. 重读DRRN(深度递归残差网络)
  19. 微信开通检测软件的使用方法(入门教程)
  20. Facebook也要玩智能眼镜

热门文章

  1. java反编译工具(class转java)
  2. Android 适配Dark Theme(暗黑模式),Android高级工程师必备知识
  3. 老司机都在用的浏览器,体积小功能齐全,直呼内行
  4. 将VS编译器默认为X64
  5. Oracle-分析函数之sum(...) over(...)
  6. 推荐一个资料:数学之美-by-吴军.pdf
  7. 利用Word解锁注册表
  8. [附源码]SSM计算机毕业设计网上鞋店管理系统JAVA
  9. JAVA代码行数统计工具(是时候看看程序员真实的的代码量了)
  10. 西门子S7-200SMART介绍及实例编程