开源库ZXing加入xcode工程报错几个原因及解决方法

从网上下载的是zxing-2.2版本。然后按照http://www.cocoachina.com/applenews/devnews/2013/0104/5462.html的例子操作,这个是对的,只是有些细节地方还没有提到。在这里补充下

1.只保留cpp/core/src/zxing cpp/core/src/bigint和iphone/ZXingWidget 共三个目录。网上的cpp/core/src/bigint目录没有加上。我编译是发现不能少此目录,估计是zxing2.2版本的缘故。所有的文件放在工程文件同一级目录(建议你放这里。)我在实战中曾经发在下一级目录失败了(原因没有细查)。

2.然后加入下framework。

a. AVFoundation  

b. AudioToolbox   

c. CoreVideo  

d. CoreMedia  

e. libiconv  

f. AddressBook  

g. AddressBookUI

3.完成之后再加入ZXingWidget和libZXingWidget.a 同时拖动工程到demo工程内。如下图

然后添加.a文件


最后在  header search paths 加入  ./zxing/iphone/ZXingWidget/Classes      ./zxing/cpp/core/src

    测试二维码识别。

我是使用第一种方式的。我是直接在MainViewController.h里面加入   #import "ZXingWidgetController.h"    #import "QRCodeReader.h"的。


问题一:

结果提示 “'iostream' file not found”错误。我开始以为是路径错了,修改路径后还是不对,按网上的把MainViewController.m 修改成.mm.还是不对。最后我把#import "ZXingWidgetController.h"#import "QRCodeReader.h"放在.mm文件,就没有问题。靠,一个混编的问题。忘了这一点。在混编中所有的c++文件都放在了.mm文件中了。


问题二: 

还遇到如下的错误


解决方法:


问题三:

敲完测试代码。一编译,一个 Cannot initialize a parameter of type 'id<ZXingDelegate>' with an lvalue of type 'MainViewController *'的错误,一看应该少了委托。蛮有信心的在mainViewController.h 上加入<ZXingDelegate>, 还是错误。最后保持.h 文件不变。在.mm文件中加入<ZXingDelegate>如下图

世界一下子就安静下来。 

问题四:


这个问题有两个方面的设置

a.如下图设置


2.如下图设置

猜你喜欢

转载自blog.csdn.net/xiao19911130/article/details/50057073
今日推荐