彩票走势图

使用CMake将Visual Studio C ++项目移植到Linux的操作方法

翻译|使用教程|编辑:陈津勇|2019-09-19 14:56:10.710|阅读 1600 次

概述:本文详细介绍了使用Dynamsoft Barcode Reader SDK多功能条码读取控件将Visual Studio C ++项目移植到Linux的操作方法,内含多个产品安装包和示例。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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 install

Linux

安装所需的包

sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libjpeg-dev libpng-dev libtiff-dev

解压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

QQ截图20190919140534.png

适用于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代码。

下载源代码



想要获得Dynamsoft Barcode Reader更多资源或正版授权的伙伴,

扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯

1563778777.jpg


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP