C++二維碼相關庫編譯


一、瞎想  

  坐在地鐵上閑來無聊,突然想到了二維碼,順手就百度了下相關的資料,目前C++二維碼相關的庫不多,也就zbar(開源中國上下了半天也沒下載下來)、zxing,不過這兩個庫據說都是解析二維碼的,不能生成二維碼,這個是對於C++而言,如果你是搞C#或者java的,那么恭喜你,你可以直接使用zxing庫來完成生成和解析二維碼,具體參看

二、二維碼生成工具

  這里我給大家介紹一個二維碼生成工具,效果如圖1所示,從圖中就可以看出二維碼的工具名稱。

圖1 二維碼展示

    關於二維碼中間的圖片,其實是貼上去的,因為二維碼有容錯能力,因此添加一張小的圖片不影響解析效果。如圖2所示,從安裝文件來看這個開源的工具其實也是使用了zxing庫來生產和解析二維碼,這個和文章前面的描述有出入。具體zxing到底能否生產二維碼個人沒有經過驗證,本片文章旨在講述各個庫的編譯過程,因此對這個問題不做結論

圖2 安裝文件列表

三、QZXing編譯

  QZXing是基於qt將zxing進行了封裝,那么此小節我就直接講述QZXing的編譯過程。

  1. 首先從SourceForge.net上下載QZXZing源碼,並解壓
  2. 使用qmake命令將pro文件轉化為sln(1、qmake QZXing.pro  2、qmake -tp v -r)
  3. 使用vs打開sln文件進行編譯,最終生成相關的dll、lib和pdb文件,如圖3所示,我只展示了release下生成的文件

圖3 QZXing編譯結果

四、qrencode-3.1.0編譯

  C++下基於qrencode可以進行生成二維碼,我是參考了幾篇文章進行編譯,文章列表如下:

  VS2010 編譯完整 libqrencode 細節

  vc2010 編譯 qrencode

  上述兩篇文章都是講述的自建vs工程來編譯qrencode源碼,但是細節有所差別,其中主要是qrenc.c文件是否添加到工程,如下編譯步驟是我按照這兩篇文章的理解所實踐出來的編譯步驟

  編譯步驟:

  1. 從github上下載qrencode源碼並解壓
  2. 新建win32工程,並設置工程為lib庫,不使用預編譯頭文件
  3. 把qrencode直接目錄下的所有.h和.c(除過qrenc.c)文件添加到該工程,其中將config.h.in改為config.h,並修改rscode.c源碼,modnn函數去掉inline關鍵字
  4. 修改qrspec.c文件,將strdup替換為_strdup,這是兩兩篇文章中都沒有提到的,我是根據錯誤提示找到了解決辦法,參看The posix name for this item is deprecated in VC++ 2008
  5. 編譯結果如圖4所示

圖4 qrencode編譯結果

五、ZBar Code

  這個庫可以上SourceForge.net直接下載,包含dll和lib文件,我下載后的解壓文件如圖5

圖5 zbar庫

六、使用

  這幾個庫的使用都比較簡單,我在這里就給出幾個個人覺得靠譜的使用鏈接

  1. libqr--簡單好用的c++二維碼生成庫 :libqr使用

  2. 使用QZXing識別圖片二維碼 :QZXing使用
  3. QR code二維碼簡介及Qrencode庫的移植與使用 :qrendcode使用

七、相關鏈接

  strdup 和 _strdup 的使用及區別

 

注:關於使用后續有時間我會補充一個小示例

 

如果您覺得文章不錯,不妨給個 打賞,寫作不易,感謝各位的支持。您的支持是我最大的動力,謝謝!!! 

 

  


很重要--轉載聲明

  1. 本站文章無特別說明,皆為原創,版權所有,轉載時請用鏈接的方式,給出原文出處。同時寫上原作者:朝十晚八 or Twowords
  2. 如要轉載,請原文轉載,如在轉載時修改本文,請事先告知,謝絕在轉載時通過修改本文達到有利於轉載者的目的。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM