【发布时间】:2012-10-30 06:08:54
【问题描述】:
我在我的项目中包含了 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 选项。传统上,如果我从不引用静态库中的任何代码,就永远不会出现这种链接错误。我是不是错过了什么?
【问题讨论】:
-
你是否将lib文件中需要的文件导入到你正在使用函数的类中???
-
我没有使用库中的任何方法。我刚刚导入了所有头文件和静态库,我相信这是使用第三方库的正确方法。我很好奇为什么即使我没有 libzar 的任何引用但只是导入了它,Xcode 也无法链接。
-
在你的类文件 {"#import "ZBarImageScanner.h"} 中添加这一行。将它导入你使用扫描仪代码的地方。我希望它能解决你的问题。
-
您正在创建用于读取条形码的项目吗?如果是,那么请点击此链接并在此处下载示例项目:github.com/WillChilcutt/Barcode-Reader 它会解决您的问题。
-
我刚刚遇到了同样的问题。我通过以下方式解决了它:转到 Project Navigator,选择我的
.a库。在右侧窗格中,选择选项卡 Show the File Inspector。然后,确保选中 Target Membership 复选框。希望这对您有所帮助。
标签: ios xcode linker static-linking