日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

gmssl编译linux,linux 编译安装GmSSL记录

發(fā)布時(shí)間:2023/12/10 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gmssl编译linux,linux 编译安装GmSSL记录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1,在GMSSL官網(wǎng)下載源碼包。

2,參考官網(wǎng)編譯安裝流程:http://gmssl.org/docs/quickstart.html

進(jìn)行編譯安裝。

3,安裝完畢后運(yùn)行g(shù)mssl version出錯(cuò)如下:

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

網(wǎng)上查到的方案:

https://www.cnblogs.com/wangzihong0213/p/10856875.html

使用ldd查看gmssl使用的動(dòng)態(tài)鏈接庫位置,發(fā)現(xiàn)會(huì)使用linux-gun下存在的庫,并沒有鏈接編譯源碼生成的動(dòng)態(tài)鏈接庫。進(jìn)行簡單的拷貝可能導(dǎo)致無法預(yù)測的其他錯(cuò)誤。

故思考后的解決方案:

思路:修改gmssl運(yùn)行時(shí)使用的動(dòng)態(tài)鏈接庫為自身編譯生成的庫文件。

需要解決問題:1,如何修改動(dòng)態(tài)鏈接庫的鏈接路徑,參見:https://blog.csdn.net/wh8_2011/article/details/79519293

得知編譯源碼時(shí)可以指定軟件優(yōu)先進(jìn)行搜索的路徑。即編譯源碼時(shí)使用參數(shù):-Wl,rpath=選項(xiàng)

。故對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)

若已執(zhí)行了make install命令則需要執(zhí)行:make uninstall進(jìn)行卸載,再進(jìn)行make clean清除編譯生成的過程文件。保存修改后的Makefile后重新運(yùn)行make install進(jìn)行安裝。

查看效果: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)

上述列出的動(dòng)態(tài)鏈接庫中l(wèi)ibcrypto.so.1.1和libssl.so.1.1鏈接的路徑已改為編譯生成的庫文件。至此可正常運(yùn)行GMSSL。

總結(jié)

以上是生活随笔為你收集整理的gmssl编译linux,linux 编译安装GmSSL记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。