在尝试dlopen /usr/lib/x86_64-gnu-linux/opensc- such 11时,在应用程序中,我得到了一个库的“无法打开共享对象文件:没有这样的文件或目录”。
dlopen("/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so", RTLD_NOW | RTLD_LOCAL);我遵循了Wiki https://github.com/OpenSC/OpenSC/wiki/Compiling-and-Installing-on-Unix-flavors上的说明。
同时也做了一个sudo apt安装opensc-pkcs11.so。该文件存在于/usr/lib/x86_64-gnu中,即库搜索路径。
还有什么需要做的吗?是否需要设置env变量?对于SoftHSM库的dlopen也是如此。
想要指出的是,当运行pkcs11 11工具命令行时,它可以工作。
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so -I
Cryptoki version 2.20
Manufacturer OpenSC (www.opensc-project.org)
Library Smart card PKCS#11 API (ver 0.0)
No slot with a token was found.因此,当我在我的应用程序中尝试相同的dlopen时,它似乎失败了。有什么想法吗?
发布于 2018-01-09 03:47:28
当我在我的应用程序中尝试相同的dlopen时,它失败了。
no such file最有可能的原因是opensc-pkcs11.so本身依赖于其他库,而这个库是找不到的。
您可以通过ldd /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so来确认或证明这一点。
https://stackoverflow.com/questions/48159921
复制相似问题