适用于 Mac OS 的静态库

Static library for Mac OS

本文关键字:静态 OS Mac 适用于      更新时间:2023-10-16

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

为了解决这些错误,我尝试了以下方法;

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

我有 PCSC 用于 x86_64 和 i386 的弧形。 libccid 适用于 i386。 我正确运行 PCSCTEST。

请让我知道我该如何解决它。

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

  • 在特定项目中使用框架的静态库。
  • 在 Xcode 静态库中包含框架?

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

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