nu-book/zxing-cpp在windows7下的編譯

環境安裝:git

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

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++的桌面開發」支持。ui

 

項目生成:spa

1. 解壓zxing-cpp壓縮包,建立build文件夾用於儲存編譯後生成的vs工程。3d

image

2. 打開cmake ui,點擊「Browse Source…」按鈕選擇 zxing-cpp 源碼路徑。點擊「Browse Build…」按鈕選擇 build 文件夾。調試

image

3.點擊 Configure按鈕,在新窗口中選擇Visual Studio 15 2017和x64平臺(按需選擇)。code

image

4. 點擊Finish完成配置。orm

image

5. 點擊Generate按鈕完成項目生成。blog

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.編譯成功

imageimage

相關文章
相關標籤/搜索