iOS:链接错误而反对静态库,即使我没有引用该库中的任何代码

标签 ios xcode linker static-linking

我在我的项目中包含了libzar.a,但是,即使我没有编写任何代码来引用libzar中的任何方法,我的项目仍然无法链接。这是错误输出,

Undefined symbols for architecture i386:

“_CVPixelBufferGetBaseAddressOfPlane”,引用自: -[ZBarCVImage convertCVtoRGB] in libxxx.a(ZBarCVImage.o)

“_CVPixelBufferGetBytesPerRowOfPlane”,引用自: -[ZBarCVImage convertCVtoRGB] in libxxx.a(ZBarCVImage.o)

“_CVPixelBufferGetHeight”,引用自: -[ZBarCVImage convertCVtoRGB] in libxxx.a(ZBarCVImage.o)

“_CVPixelBufferGetWidth”,引用自: -[ZBarCVImage convertCVtoRGB] in libxxx.a(ZBarCVImage.o)

“_CVPixelBufferLockBaseAddress”,引用自: -[ZBarCVImage convertCVtoRGB] in libxxx.a(ZBarCVImage.o)

“_CVPixelBufferRelease”,引用自: -[ZBarCVImage setPixelBuffer:] in libxxx.a(ZBarCVImage.o)

“_CVPixelBufferRetain”,引用自: -[ZBarCVImage setPixelBuffer:] in libxxx.a(ZBarCVImage.o)

“_CVPixelBufferUnlockBaseAddress”,引用自: -[ZBarCVImage convertCVtoRGB] in libxxx.a(ZBarCVImage.o)

“_iconv”,引用自: _qr_code_data_list_extract_text in libxxx.a(qrdectxt.o)

“_iconv_close”,引用自: _qr_code_data_list_extract_text in libxxx.a(qrdectxt.o)

“_iconv_open”,引用自: _qr_code_data_list_extract_text in libxxx.a(qrdectxt.o)

ld: 找不到架构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

这是我做的,
1. 刚刚将 libzar.a 添加到我的项目
2. 构建应用
3.错误

我的链接配置只添加了 -all_load 和 -ObjC 选项。传统上,如果我从不引用静态库中的任何代码,就永远不会出现这样的链接错误。我错过了什么吗?

最佳答案

将 CoreVideo.framework 添加到“将二进制文件与库链接”构建阶段应该可以解决这个问题。

关于iOS:链接错误而反对静态库,即使我没有引用该库中的任何代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13133576/

相关文章:

ios - 在横向模式下切换 View 时 Xcode 通用应用程序问题

c++ - 链接器找不到命名空间的函数

ios - 制作一个不隐藏在 GameScene 中的按钮

ios - .framework 和 .a 中的重复符号

iphone - 应用程序在设备上和仅使用仪器时崩溃

swift - 如何去除 UISlider 和 Minimum Image 之间的空间

c - 它是否禁止从 Objective-C++ 类方法体调用经典 C 函数?

linux - gnu ld 链接器行为的变化

ios - UINavigationBar 约束问题中的奇怪 UITextField 仅在 iOS 10 或更高版本上

objective-c - 在 cocos2d 中使用 CCMenu