c/c++语言开发共享无法编译读取智能卡的ac应用程序

我正在尝试编译一个示例c应用程序,该应用程序正在使用pkcs#11查找令牌上的所有私钥,并打印其标签和ID,但会出现以下错误

/tmp/ccAqQ7UI.o: In function initialize': pkcs11_example1.c:(.text+0x8e5): undefined reference to C_Initialize' /tmp/ccAqQ7UI.o: In function `get_slot': 

这个例子来自这里

使用以下命令进行编译;

  `gcc pkcs11_example1.c -o slots -L /usr/lib/opensc-pkcs11.so` 

我不确定在-L之后我应该链接哪个库。 任何人都可以指导如何编译它,是否有一些库需要链接。

    具有“C_”前缀的C_Initialize和其他60多个函数是PKCS#11规范中定义的cryptoki函数。 它们通常在HSM供应商提供的独立库中实现。 查看代码示例,我会说您需要直接链接PKCS#11库,或者您可以修改代码以在运行时使用LoadLibrary或dlopen动态加载PKCS#11库,然后通过C_GetFunctionList调用获取指向所有cryptoki函数的指针。 您还可以查看pkcs11-logger源代码 ,了解如何执行此操作的示例。

    您提供的链接命令, gcc pkcs11_example1.c -o slots -L /usr/lib/opensc-pkcs11.so ,是错误的。

    因此,首先确保您的库文件确实是/usr/lib/libopensc-pkcs11.so (注意lib前缀!),可能跟随以下版本号。 然后更改构建选项,以便链接命令变为

     gcc pkcs11_example1.c -o slots -lopensc-pkcs11 

      以上就是c/c++开发分享无法编译读取智能卡的ac应用程序相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519029.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐