适用于Mac OS的静态库

时间:2013-12-25 12:08:51

标签: c++ macos static-libraries pcsc

我为Mac OS编写了一个C ++静态库。适用于使用智能卡运行的应用程序。因此,它使用了PCSC.framework。在编译mylib期间,没有问题,并且派生了静态库。我创建了一个应用程序,它是命令行工具。我将静态库添加到应用程序中。当我从lib的一个类创建一个实例并调用实例的方法时,我为arcitecture x86_64:SCardConnect,SCardEstablishContext和其他pcsc函数带来了错误的未定义符号

为了解决这些错误,我尝试了以下内容;

我在从64位更改32位英特尔架构后重建了静态库。然后我还重建了测试应用程序。但错误持续相似。与arcitecture i386的早期未定义符号不同。

我有两个arcitectures x86_64和i386的PCSC。 libccid适用于i386。我正确运行pcsctest。

请让我知道如何解决它。

1 个答案:

答案 0 :(得分:1)

构建静态库不会链接和解析框架的所有符号。看看以下类似的问题:

要考虑的一些替代方案是:

  • 包括PCSC.framework作为您的框架依赖 应用程序就像使用库一样。
  • 创建框架或 动态库而不是静态库。
  • 在PCSC.framework上调用dlopen / dlsym。