Dynamsoft Barcode Reader是用C/C++实现的企业级条码SDK。尽管SDK可用于Windows、Linux和macOS,但只有一个Windows示例显示如何在版本7.x中调用最新的视频API。为了让开发人员在Linux或其他平台上体验这个例子,本文使用CMake重构项目构建环境。
构建OpenCV
无论您使用何种操作系统,都可以从源代码构建OpenCV库。
视窗
安装Visual Studio 2017和cmake-3.15.2-win64-x64.msi
解压OpenCV源代码并创建一个临时目录:
cd opencv-3.4.7
mkdir build
cd build构建OpenCV库:
cmake -G"Visual Studio 15 2017 Win64" ..
cmake --build . --target installLinux
sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libv解压OpenCV源代码并创建一个临时目录:
cd opencv-3.4.7
mkdir build
cd build构建OpenCV库:
cmake ..
cmake --build . --target install用CMake替换Visual Studio项目
在Windows中提取条形码阅读器示例:
删除* .sln和* .vcproj文件。
重新组织项目结构并为构建配置创建CMakeLists.txt文件。

编辑CMakeLists.txt
检查平台:
if (CMAKE_HOST_WIN32)
set(WINDOWS 1)
elseif(CMAKE_HOST_UNIX)
set(LINUX 1)
endif()配置头文件以将一些CMake设置传递给源代码:
configure_file (
"${PROJECT_SOURCE_DIR}/BarcodeReaderConfig.h.in"
"${PROJECT_BINARY_DIR}/BarcodeReaderConfig.h"
)添加Dynamsoft Barcode Reader和OpenCV的链接目录:
if(WINDOWS)
link_directories("${PROJECT_SOURCE_DIR}/platforms/win/lib/")
elseif(LINUX)
link_directories("${PROJECT_SOURCE_DIR}/platforms/linux/")
find_package(OpenCV REQUIRED)
endif()添加头文件目录:
include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/include/")添加目标可执行文件和链接依赖库:
add_executable(BarcodeReader BarcodeReader.cxx)
if(WINDOWS)
target_link_libraries (BarcodeReader "DBRx64" "opencv_core347d.lib" "opencv_highgui347d.lib" "opencv_videoio347d.lib")
else()
target_link_libraries (BarcodeReader "DynamsoftBarcodeReader" ${OpenCV_LIBS})
endif()将DLL文件复制到Windows的输出目录:
if(WINDOWS)
add_custom_command(TARGET BarcodeReader POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${PROJECT_SOURCE_DIR}/platforms/win/bin/"
$)
endif()适用于Windows的CMake构建
从Dynamsoft\Barcode Reader 7.1\Components\C_C++\Lib,复制DBRx64.lib到platforms\win\lib。
从opencv-3.4.7\build\lib,复制opencv_core347d.lib, opencv_highgui347d.lib,opencv_videoio347d.lib来platforms\win\lib。
从Dynamsoft\Barcode Reader 7.1\Components\C_C++\Redist\x64,将所有DLL文件复制到platforms\win\bin。
从opencv-3.4.7\build\bin\Debug,复制opencv_imgproc347d.dll, opencv_videoio347d.dll,opencv_highgui347d.dll和opencv_imgcodecs347d.dll到platforms\win\bin。
创建一个build文件夹:
mkdir build
cd build编辑CMakeLists.txt以替换您的安装路径:
set(CMAKE_INSTALL_PREFIX "e:/${PROJECT_NAME}")生成项目配置文件:
cmake -G"Visual Studio 15 2017 Win64" ..建立项目:
cmake --build .运行应用程序:
build\Debug\BarcodeReader.exe
适用于Linux的CMake构建
复制Dynamsoft/BarcodeReader/lib/WITHOUTSTDC++LIB/libDynamsoftBarcodeReader.so到platforms/linux/。
创建一个build文件夹:
mkdir build
cd build生成项目配置文件。
cmake ..建立项目:
cmake --build .运行应用程序:
./BarcodeReader关于Dynamsoft Barcode Reader
Dynamsoft Barcode Reader SDK使您能够使用几行代码在您的Web,桌面或移动应用程序中有效地嵌入条形码读取功能。它节省了开发时间和额外成本。使用SDK,您可以通过创建高速可靠的条形码扫描仪软件,来满足您的业务需求。
支持的条形码类型
1D条码
Code 39、Code 93、Code 128、Codabar、EAN-8、EAN-13、UPC-A、UPC-E、Interleaved 2 of 5(ITF)、Industrial 2 of 5(Code 2 of 5 Industry、Standard 2 of 5 、代码2 of 5)、ITF-14。
二维条码
QRCode、DataMatrix、PDF417和Aztec代码。