1. 程式人生 > >開源庫ZXing加入xcode工程

開源庫ZXing加入xcode工程

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.如下圖設定