在尝试从应用程序中 dlopen /usr/lib/x86_64-gnu-linux/opensc-pkcs11.so 时,我得到库的“无法打开共享对象文件:没有这样的文件或目录”。
dlopen("/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so", RTLD_NOW | RTLD_LOCAL);
我按照维基上的说明 https://github.com/OpenSC/OpenSC/wiki/Compiling-and-Installing-on-Unix-flavors
并且还做了一个 sudo apt-get install opensc-pkcs11.so。该文件存在于 /usr/lib/x86_64-gnu-linux 中,这是库搜索路径。
还有什么需要做的吗?是否需要设置任何环境变量?SoftHSM 库的 dlopen 也是如此。
想指出的是,在运行 pkcs11-tool 命令行时,它可以工作
$ 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 时,它似乎失败了。有任何想法吗 ?