Linux下C++ XML签名工具GOST算法链接报错,是否需添加特定库?
解决方案
是的,你需要链接xmlSec的OpenSSL GOST扩展库来解决这些未定义引用错误,具体操作如下:
先确认系统已安装带GOST支持的xmlSec组件:
在Debian/Ubuntu系,安装libxmlsec1-openssl-gost包;在RHEL/CentOS系,安装xmlsec1-openssl-gost包。如果是自行编译xmlSec,编译时必须添加--enable-gost参数才能启用GOST算法支持。链接阶段添加对应库:
在编译命令中追加-lxmlsec1-openssl-gost(部分发行版可能命名为-lxmlsec1-gost,需根据实际库文件名调整)。完整编译示例:g++ your_sign_tool.cpp -o xml_sign_tool -lxmlsec1 -lxmlsec1-openssl -lxmlsec1-openssl-gost -lssl -lcrypto验证库中是否包含所需符号:
用nm命令检查目标库是否存在缺失的函数:nm -D /usr/lib/x86_64-linux-gnu/libxmlsec1-openssl-gost.so | grep xmlSecOpenSSLKeyDataGost如果输出包含你报错的那几个
GetKlass函数,说明库是正确的。
内容的提问来源于stack exchange,提问作者Nem
相关产品推荐
相关产品推荐

