zbar android sdk源碼編譯

來源:互聯網
上載者:User

標籤:

zbar,解析條碼和二維碼的又一利器,zbar代碼是用c語言編寫的,如果想在Android下使用zbar類庫,就需要使用NDK將zbar編譯成.so載入使用,zbar編譯好的Android SDK可以在官方網站上下載,地址:http://zbar.sourceforge.net/

下面就講解一下我們自己如何編譯zbar的Android SDK,本人的開發環境為Win7 64+ant 1.9.5+Cygwin64+android-ndk-r9d-windows-x86_64

1.準備工作

  1.1 下載ant,配置環境變數,並在Path路徑裡添加%ANT_HOME%\bin

   

    在命令列裡輸入ant -v命令,出現以下提示資訊,則表示ant安裝配置成功

   

 1.2 下載安裝cygwin 64位版本

 1.3 下載安裝NDK 64位版本,解壓到指定目錄,如D:\Software\android-ndk-r9d

 1.4 從https://github.com/zbar/zbar下載zbar代碼,解壓後目錄如下:

    

 

 2.編譯sdk

 2.1 編譯libiconv

        從http://www.gnu.org/software/libiconv 網站上下載libiconv源碼libiconv-1.14.tar.gz,解壓到指定目錄,如C:\libiconv-1.14

        開啟cygwin,切換到C:\libiconv-1.14目錄,輸入以下命令:./configure --build=x86_64-pc-linux-gnu --host=arm-linux-eabi

       

  修改libcharset/config.h檔案,將#define HAVE_LANGINFO_CODESET 1 改為#define HAVE_LANGINFO_CODESET 0

  

修改檔案libcharset/lib/localcharset.c檔案中函數get_charset_aliases (void),搜尋:int c;把該變數定義放到該函數的開始處。

   2.2 編譯sdk包

         開啟命令列,切換到zbar的 android目錄下,輸入命令android update project --path .

      

      如出現錯誤,先輸入命令android list target列出當前的target,然後在命令android update project --path .後添加對應的target,如下:

    

      開啟build-ndk.xml檔案,修改ndk-build為ndk-build.cmd,同時在javac節點裡添加source="1.6" target="1.6"

     

        然後在命令列裡執行以下命令ant -Dndk.dir=D:\Software\android-ndk-r9d -Diconv.src=C:\libiconv-1.14 zbar-all,其中D:\Software\android-ndk-r9d

        為NDK路徑,C:\libiconv-1.14為libiconv的源檔案路徑,如出現以下資訊,則表示編譯成功

       

       此時我們可以在android\libs目錄下看到剛剛編譯好的檔案

      

 

zbar android sdk源碼編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.