posts - 33, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Android下運行c程序

          Posted on 2011-09-02 09:43 馬航 閱讀(240) 評論(0)  編輯  收藏

          在android的設計中,谷歌設計了一套專門為嵌入式設備使用的bionic C庫,以替換原有的GUN Libc,這個精簡的bionic庫據說只有200多K,所以如果只想使用這個精簡的C庫像在linux下一樣 開發C程序,基本是不可能的。當然如果只想讓其在shell中運行還是可以做到的。

          因為編譯完的目標程序是在android下運行,就要使用交叉編譯的工具,在下面地址下載:

          http://www.codesourcery.com/gnu_toolchains/arm/download.html

          下載完之后,bin目錄下的arm-none-linux-gnueabi-gcc就是交叉編譯器了

          #include <stdio.h>
          int main() {
          	printf("nihao a\n");
          	printf("你好 啊\n");
          	return 1;
          }
          

          輸入一下命令:

          ./arm-none-linux-gnueabi-gcc hello.c -o hello -static

          -static選項在這里是必須的,否則會出現”not found”的錯誤。

          然后就可以把編譯好的hello傳到手機上運行了。不過這里有個前提條件,要求android機器必須是root過的,好像簡單的z4root還不行,必須使用更徹底的root方法,關于如何root,這里就不再贅述了,可以參考相關root的帖子。

          adb push hello /dev/sample/

          這里要上傳的目錄必須是root用戶所有的。

          然后就是運行程序,可以在adb shell里測試

          adb shell

          cd /dev/sample/

          chmod 777 hello

          ./hello

          或者在手機上安裝超級終端,在終端里運行

          ./hello


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 崇信县| 磐安县| 万载县| 富平县| 罗江县| 专栏| 揭西县| 舞钢市| 全州县| 朝阳市| 吴川市| 旺苍县| 咸阳市| 大兴区| 泽库县| 鹿泉市| 舒兰市| 曲沃县| 灵武市| 泸水县| 广河县| 遵义市| 犍为县| 涟水县| 荣成市| 阿拉善盟| 同江市| 酒泉市| 渝中区| 新野县| 呼和浩特市| 裕民县| 宝兴县| 安庆市| 平塘县| 斗六市| 平湖市| 天门市| 柞水县| 司法| 广昌县|