当前位置: 首页 > news >正文

zxing-cpp c++版本的编译

一、动态库编译

工程地址:https://github.com/zxing-cpp/zxing-cpp

编译:

git clone https://github.com/zxing-cpp/zxing-cpp.git --recursive --single-branch --depth 1
cmake -S zxing-cpp -B zxing-cpp.release -DCMAKE_BUILD_TYPE=Release
cmake --build zxing-cpp.release -j8 --config Release

编译过程中会遇到找不到stb,qt的问题,解决方法为:

1)缺少stb

下载stb:

cd {你用来保存stb包的文件夹}
git clone https://github.com/nothings/stb.git

修改:zxing-cpp/zxing.cmake

macro(zxing_add_package_stb)unset (STB_FOUND CACHE)include_directories("{你用来保存stb包的文件夹}/stb")add_library(stb::stb INTERFACE IMPORTED)target_include_directories(stb::stb INTERFACE "{你用来保存stb包的文件夹}/stb")if (BUILD_DEPENDENCIES STREQUAL "AUTO")find_package(PkgConfig)# pkg_check_modules (STB IMPORTED_TARGET stb)elseif (BUILD_DEPENDENCIES STREQUAL "LOCAL")find_package(PkgConfig REQUIRED)# pkg_check_modules (STB REQUIRED IMPORTED_TARGET stb)endif()# if (NOT STB_FOUND)#     include(FetchContent)#     FetchContent_Declare (stb#         GIT_REPOSITORY https://github.com/nothings/stb.git)#     FetchContent_MakeAvailable (stb)#     add_library(stb::stb INTERFACE IMPORTED)#     target_include_directories(stb::stb INTERFACE ${stb_SOURCE_DIR})# else()#     add_library(stb::stb ALIAS PkgConfig::STB)# endif()
endmacro()

2)缺少qt

将CMakeLists.txt文件中,87行到102行注释掉。这样不会影响到动态库的使用

3)编译

git clone https://github.com/zxing-cpp/zxing-cpp.git --recursive --single-branch --depth 1
cmake -S zxing-cpp -B zxing-cpp.release -DCMAKE_BUILD_TYPE=Release
cmake --build zxing-cpp.release -j8 --config Release

参考链接: 

 ubuntu编译zxing-cpp踩坑_autogen: no valid qt version found for target-CSDN博客

4)测试用例

#include "ZXing/ReadBarcode.h"
#include <iostream>int main(int argc, char** argv)
{int width, height;unsigned char* data;// load your image data from somewhere. ImageFormat::Lum assumes grey scale image data.auto image = ZXing::ImageView(data, width, height, ZXing::ImageFormat::Lum);auto options = ZXing::ReaderOptions().setFormats(ZXing::BarcodeFormat::Any);auto barcodes = ZXing::ReadBarcodes(image, options);for (const auto& b : barcodes)std::cout << ZXing::ToString(b.format()) << ": " << b.text() << "\n";return 0;
}

 

http://www.lqws.cn/news/580339.html

相关文章:

  • 【T2I】RB: REGION AND BOUNDARY AWARE ZERO-SHOT GROUNDED TEXT-TO-IMAGE GENERATION
  • RK3588高性能处理器核心技术解析
  • 从0开始学习计算机视觉--Day06--反向传播算法
  • chatshare最新激活码分享
  • OpenCV计算机视觉实战(14)——直方图均衡化
  • Windows环境下Docker容器化的安装与设置指南
  • MySQL DATETIME 类型时间精度陷阱:一次由毫秒引发的数据“消失”之谜
  • 计算机网络第一章——计算机网络体系结构
  • Pandas5(数据清洗1)——缺失值处理、数据去重/转换/替换、离散化/分箱、检测和过滤异常值
  • 【Kafka】docker 中配置带 Kerberos 认证的 Kafka 环境(全过程)
  • NIO 工作原理
  • C++ cstring 库解析:C 风格字符串函数
  • 【甲方安全建设】SDL基线建设及审计评估
  • API接口安全-2:签名、时间戳与Token如何联手抵御攻击
  • 【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(1)线性回归模型
  • Web攻防-SSRF服务端伪造功能逻辑SRC实践复盘参数盲测自动化检测流量插件
  • 【ArcGISPro】解决Pro不能导入AppData下的site-packages
  • MySQL数据库--SQL DDL语句
  • 大学专业科普 | 云计算、大数据
  • 淘宝API接口在数据分析中的应用
  • [springboot系列] 探秘 JUnit 5:现代 Java 单元测试利器
  • 2025年数据治理平台排名及功能对比分析
  • Nacos 3.0 架构全景解读,AI 时代服务注册中心的演进
  • 通过案列理解js中的深拷贝和浅拷贝
  • Server-Sent Events (SSE) 技术详解
  • 【原创】【5】【视频二创工具发布】基于视觉模型+FFmpeg+MoviePy实现短视频自动化二次编辑+多赛道
  • Windows 开发环境部署指南:WSL、Docker Desktop、Podman Desktop 部署顺序与存储路径迁移指南
  • PreparedStatement详解
  • Vue3静态文档资源展示的实现和使用总结
  • 【CS创世SD NAND征文】SD NAND赋能新一代儿童智能玩具