zxing文档版
来源:互联网 发布:c erp系统源码下载 编辑:程序博客网 时间:2024/06/03 13:21
今天要用到二维码扫描的功能,将之前做的一个可以正确运行的demo的zxing移植到新工程,却出现了iostream file notfound的问题。以下为解决办法。
参考以下文章可以完成将zxing加入到xcode中。
其实主要有几个步骤:
1、下载zxing2.1代码库后http://code.google.com/p/zxing/downloads/list,解压。将iphone目录和cpp复制到工程的目录里。要与工程的.xcodeproj文件同一级。
2、打开自己的工程,将iphone/ZXingWidget目录下的ZXingWidget.xcode文件拖拽添加到项目中
3、设置自己项目的Link Binary With Libraries
TARGETS ->Build Phases -> Link Binary With Libraries
点击+,添加libZXingWidget.a
4、设置自己项目的Target Dependencies
TARGETS ->Build Phases -> Target Dependencies
点击+,添加ZXingWidget
5、设置Header Search Paths
TARGET ->Build Settings -> Search Paths -> Header Search Paths
添加“./iphone/ZXingWidget/Classes”相对路径,选择recursive
添加“./cpp/core/src”相对路径,选择non-recursive
6、导入iOS框架
TARGETS ->Build Phases -> Link Binary With Libraries
点击+,添加AVFoundation、AudioToolbox、CoreVideo、CoreMedia、libiconv、AddressBook和AddressBookUI
7、修改使用的那个.m文件的后缀为.mm
在这个.mm文件前面加入类引用
#import <ZXingWidgetController.h>
#import <QRCodeReader.h>
在接口申明后面加入委托:
@interface HomeViewController ()<ZXingDelegate>
- (void)loadFunModelPanels;
@end
使用方法一
ZXing直接提供了一个扫描二维码的ViewController,即ZXingWidgetController。在
需要扫描的时候,调用如下代码即可:
- (IBAction)scanCode:(id)sender{s
ZXingWidgetController *widController = [[ZXingWidgetControlleralloc]initWithDelegate:selfshowCancel:YESOneDMode:NO];
NSMutableSet *readers = [[NSMutableSetalloc ] init];
QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init];
[readers addObject:qrcodeReader];
widController.readers = readers;
[selfpresentModalViewController:widControlleranimated:YES];
}
在ZXing扫描有结果时,会调用如下回调函数:
1 @protocolZXingDelegate
2 - (void)zxingController:(ZXingWidgetController*)controllerdidScanResult:(NSString *)result;
3 - (void)zxingControllerDidCancel:(ZXingWidgetController*)controller;
4 @end
以下可能遇到的一些编译问题:
1.如果你项目中使用了zxing,但是在xcdoe升级到4.5以后出现Incompatible pointer types sending'Class' (aka 'Class *') to parameter of type 'id<NSCopying>'错误,解决办法:重新下载更新版本的ZXing,可以使用命令下载最新版本:svncheckout http://zxing.googlecode.com/svn/trunk/ zxing-read-only。
2.如果出现了问题Undefined symbols for architecturei386"std::string::c_str() const", referenced from。。。。,
将你项目中的Apple LLVM compiler 4.1 - language中的 c Language Dialect、c++ Language Dialect、c++ standard Library设置成下图所选的值。参考http://stackoverflow.com/questions/12665457/zxing-in-xcode-4-5-and-ios-6
3.编译成功往真机上装的时候出现Choose a destination with a supportedarchitecture in order to run on this device ,由于ios设备不支持armv7s,所以必须将Architectures设置为armv6,但是仅仅需要改动valid architectures就行,不要改动architectures,否则容易引起真机不运行。把architectures改为$(ARCHS_STANDARD_32_BIT)就可以撞到手机上了。见http://blog.sina.com.cn/s/blog_90a0ad8d01013uuh.html
4:XCode 手贱升级到了 4.6 ZXingSDK 编译不过去了.
出现什么变量声明了没有使用的编译错误提示(可是明明使用了):
Member initializer 'bits_' does not name anon-static data member or base class
谷歌老外牛人多啊,或者说老外也遇到这个问题了,然后提问了,问答地址如下:
http://code.google.com/p/zxing/issues/detail?id=1494
里面说到将 ZXingWidget - BuildSettings - Other WarningFlags 里的 -Werror 和 -Wno-unused-parameter 去掉,
但其实只要去掉 -Werror 就可以了, 如果-Wno-unused-parameter 这个也去掉了会产生很多变量没有使用的警告.
此时可以编译通过了,烦恼的是 也有少许警告.
5.如果错误如下图所示,则将armv7s删除:
- zxing文档版
- ZXing 简化版解析
- ZXing简化版,转载
- zxing
- zxing
- zxing
- zxing
- zxing
- zxing
- zxing
- Zxing
- zxing
- Zxing
- 简化ZXing库Android版
- ZXing竖屏解决(完美版)
- ZXing条码扫描Android版编译过程
- 【Zxing】二维码ZXing
- 使用Zxing开发Air版二维码扫描工具
- Linux下IPTABLES防火墙的设定
- WCF实现Session信息
- 数据库基本知识
- android漏洞收集3-短信程序smsreceiverservice服务暴露
- java开发webservice
- zxing文档版
- cocos2d-x v3.0代码差异
- Android NDK开发(2)----- JNI多线程
- 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果及其他。
- 我的博客
- 判断整数序列是不是二叉查找树(BST)的后序遍历结果
- jquery实现input输入框实时输入触发事件
- IOS7隐藏状态栏
- The connection to adb is down, and a severe error has occured.