【发布时间】:2014-01-13 09:21:07
【问题描述】:
我为 Mac OS 编写了一个 C++ 静态库。它适用于使用智能卡运行的应用程序。因此,它使用了 PCSC.framework。在编译mylib的过程中,没有问题,导出了一个静态的lib。我创建了一个应用程序,它是命令行工具。我将我的静态库添加到应用程序中。当我从 lib 的一个类创建实例并调用实例的方法时,我为架构 x86_64 获取了错误未定义符号:SCardConnect、SCardEstablishContext 和其他 pcsc 函数
为了解决这些错误,我尝试了以下方法;
在将架构从 64 位更改为 32 位英特尔后,我重建了静态库。然后我还重建了测试应用程序。但类似的错误仍在继续。只是与早期的 i386 未定义符号不同。
我有适用于 x86_64 和 i386 架构的 PCSC。 libccid 用于 i386。我正确运行 pcsctest。
请告诉我如何解决它。
【问题讨论】:
-
通过在静态库中运行
file object.o来检查其中一个目标文件。它是否同时显示 i386 和 x86_64 代码?现在对您的应用程序二进制文件或其目标文件之一执行相同的操作。 -
请不要在问题中发布答案——人们不会轻易找到它。而是将其作为答案发布。
-
系统不允许我为自己的问题写答案。所以我编辑了我的问题。
标签: c++ macos static-libraries pcsc