環境安裝:
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工程,

2. 打開cmake ui,點擊“Browse Source…”按鈕選擇 zxing-cpp 原始碼路徑,點擊“Browse Build…”按鈕選擇 build 檔案夾,

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

4. 點擊Finish完成配置,

5. 點擊Generate按鈕完成專案生成,

專案編譯:
1. 在build檔案夾中打開vs專案,

2.修改解決方案配置為Release,點擊本地Windows 除錯器編譯專案,

3. 編譯報錯:錯誤 C2327 “ZXing::DecodeHints::_flags”: 不是型別名稱、靜態或列舉數 ,查看錯誤是DecodeHints.h的170 行靜態斷言導致,

解決方法:
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.編譯成功

![]()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52964.html
標籤:C++
下一篇:L1-007 念數字 (10分)
