ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

nu-book/zxing-cpp在windows7下的编译

2020-03-22 14:54:30  阅读:422  来源: 互联网

标签:COUNT 点击 zxing 编译 windows7 book flags cpp


环境安装:

1. 安装cmake:https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0-win64-x64.msi,我下的是今天的最新版本。

2.  下载zxing-cpp项目项目代码:https://github.com/nu-book/zxing-cpp/releases。我下载的版本是V1.0.8.

3. Visual Studio 2017安装https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/,安装完成后在 工具-获取工具和支持 中添加“使用C++的桌面开发”支持。

 

项目生成:

1. 解压zxing-cpp压缩包,创建build文件夹用于储存编译后生成的vs工程。

image

2. 打开cmake ui,点击“Browse Source…”按钮选择 zxing-cpp 源码路径。点击“Browse Build…”按钮选择 build 文件夹。

image

3.点击 Configure按钮,在新窗口中选择Visual Studio 15 2017和x64平台(按需选择)。

image

4. 点击Finish完成配置。

image

5. 点击Generate按钮完成项目生成。

image

项目编译:

1. 在build文件夹中打开vs项目。

image

2.修改解决方案配置为Release,点击本地Windows 调试器编译项目。

image

3. 编译报错:错误    C2327    “ZXing::DecodeHints::_flags”: 不是类型名称、静态或枚举数 ,查看错误是DecodeHints.h的170 行静态断言导致。

image

解决方法:

3.1.注释静态断言 重新编译

enum HintFlag
    {
        TRY_HARDER = static_cast<int>(BarcodeFormat::FORMAT_COUNT) + 1,
        TRY_ROTATE,
        WITH_CODE_39_EXTENDED,
        ASSUME_CODE_39_CHECK_DIGIT,
        ASSUME_GS1,
        RETURN_CODABAR_START_END,
        FLAG_COUNT
    };

    //static_assert(FLAG_COUNT < 8 * sizeof(_flags), "HintFlag overflow");

    bool getFlag(int f) const {
        return (_flags & (1 << f)) != 0;
    }

3.2. 修改sizeof(_flags)为sizeof(uint32_t) ,重新编译。

enum HintFlag
    {
        TRY_HARDER = static_cast<int>(BarcodeFormat::FORMAT_COUNT) + 1,
        TRY_ROTATE,
        WITH_CODE_39_EXTENDED,
        ASSUME_CODE_39_CHECK_DIGIT,
        ASSUME_GS1,
        RETURN_CODABAR_START_END,
        FLAG_COUNT
    };

    static_assert(FLAG_COUNT < 8 * sizeof(uint32_t), "HintFlag overflow");

    bool getFlag(int f) const {
        return (_flags & (1 << f)) != 0;
    }

4.编译成功

image

标签:COUNT,点击,zxing,编译,windows7,book,flags,cpp
来源: https://www.cnblogs.com/zhenjin-huaxiazongdai/p/12545959.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有