如何在iOS中使用ZXing库

如何在iOS中使用ZXing库,第1张

我以前在iOS项目开发中使用了ZXing的扫描二维码功能。在此总结一下如何将ZXing集成到已有的iOS工程中,分享给大家。

集成步骤

首先去Google Code或Github将ZXing的代码下载下来,整个工程比较大,我们只需要其中涉及iOS的部分,所以最好做一些裁剪。简单来说,我们只需要保留cpp和iphone这2个文件夹,其余的全部删掉。如下图所示:

接着我们继续裁剪,对于cpp这个目录,只保留cpp/core/src/zxing下面的内容,其余内容也可以删掉了。但是整个目录结构必须保持原样。裁剪完后,整个目录结构如下所示:

接下来,我们把裁剪后的zxing目录整个移动到我们的iOS项目的目录下,并且把上图中可以看到的ZXingWidget.xcodeproj文件拖动到我们的iOS工程中。

下一步,我们需要设置ZXing项目和我们原本的iOS项目之间的依赖关系。在我们的iOS项目的设置中,点击build phases tab,然后增加 Target Dependencies 和 Link binary,并且增加这些framework依赖:

a. AVFoundation

b. AudioToolbox

c. CoreVideo

d. CoreMedia

e. libiconv

f. AddressBook

g. AddressBookUI

完成之后如下图所示:

最后一步,在设置中增加如下2个header search path:

./zxing/iphone/ZXingWidget/Classes

./zxing/cpp/core/src

需要注意的是,第一个path要设置成循环查找子目录,而第二个不循环查找

最近在安装libconfig库时,编译期间出现找不到libiconv库的问题

/usr/local/lib/../lib64/libstdc++.so: undefined reference to "libiconv"

在仔细检查重新安装了libiconv库之后,问题依然无法解决。因此根据make时的记录进行追溯,发现链接错误出现在/example/c++样例编译期间

手动去查看/example/c++/下的Makefile文件时发现

其中LIBS变量存放编译时所需引用的外部库,而这里默认置空,我的环境使用的是CentOS7,而这里需要手动添加libiconv库的引用,因此将其改为

手动指定链接libiconv库。之后重新执行make,成功编译并链接。

类似库找不到定义的问题原因可能有很多,但大致都可以按照一下思路进行解决


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11271479.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存