基于Anycloud平台移植zxing-cpp
0. 环境准备
- 系统环境Ubuntu 16.04.7
- zxing-cpp下载
本次使用的是 nu-book 的代码:
git clone https://github.com/nu-book/zxing-cpp.git
- 由于最新版本的代码需要cmake 3.14 或以上,所以当前使用的版本为zxing-cpp-1.0.8
1. 交叉编译
tar xzf zxing-cpp-1.0.8.tar.gz
cd zxing-cpp-1.0.8/
- 修改CMakeLists.txt :
cmake_minimum_required (VERSION 3.1.3)
set (ZXING_VERSION_MAJOR 1)
set (ZXING_VERSION_MINOR 0)
set (ZXING_VERSION_PATCH 7)
project (ZXingCpp VERSION ${ZXING_VERSION_MAJOR}.${ZXING_VERSION_MINOR}.${ZXING_VERSION_PATCH})
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER arm-anykav500-linux-uclibcgnueabi-gcc)
SET(CMAKE_CXX_COMPILER arm-anykav500-linux-uclibcgnueabi-g++)
set(CMAKE_INSTALL_PREFIX "/home/anyka/project/zxing_project/output")
添加最后四行,设置系统、工具链配置及安装路径.
4. mkdir build
5. cd build
6. cmake../
7. make
8. make install
2. 编译静态库
前面的编译默认是编译动态库(libZXingCore.so), 如果需要编译静态库(libZXingCore.a),则需要进行配置编译.
- 步骤1~5同上
cmake -DBUILD_SHARED_LIBRARY=false ../
make
make install
3. 测试
将相关的动态库(libZXingCore.so)放到文件系统里面后,使用代码自带的example(zxing-cpp-1.0.8/example/scan_image.cpp)进行测试.
将example编译后,放到系统中进行测试:
[root@anyka /tmp]$ ./scan_image -format QR_CODE ./qrcode.png
Text: Hello world
Format: QR_CODE
Position: 103x535 103x103 535x103 464x464
EC Level: H
能够识别二维码信息"Hello world".