/lib64/librpmio.so.8 undefined symbol EVP_md2 version OPENSSL_1_1_0

通常一些so报undefined symbol
比如ImportError /lib64/librpmio.so.8 undefined symbol EVP_md2 version OPENSSL_1_1_0

cd /lib64
nm librpmio.so.8 | grep EVP_md2
# 若报no symbols
# 则使用-d参数,显示动态库符号,而不是正常符号
nm -D librpmio.so.8 | grep EVP_md2 

# 执行结果会显示未定义符号
U EVP_md2

# 查看动态库依赖库,分析EVP_md2可能出现的库
# 应该是openssl的库,定位libcrypto.so.1.1库
ldd librpmio.so.8 

# libcrypto.so.1.1使用的是/usr/local/openssl/lib/libcrypto.so.1.1.1n
nm -D /usr/local/openssl/lib/libcrypto.so.1.1 | grep EVP_md2是查看不到symbol

# 分析可能是openssl版本问题
# 查找发现/lib64目录下也有libcypto.so,并且有定义EVP_md2符号

# 所库依赖库的目录先后顺序导致的
ldconfig -vv 查看/usr/local/openssl/libcrypto.so.1.1再/lib64之前

# lib64放在/usr/local/opessl/lib之前
vi /etc/ld.conf.so 
#执行ldconfig -vv就可以了







你可能感兴趣的:(linux-shell,undefined,symbol)