在Android上使用gcc編譯C/C++源程序


本文和gcc編譯器在我的百度網盤中有下載:http://yun.baidu.com/share/link?shareid=3369826431&uk=3138089586

本文中的腳本難免有錯,請以實際文件夾名為主。

前幾天在網上看到了一篇關於Android上利用終端來使用gcc編譯C/C++源程序的文章,我感到無比興奮,所以立刻將我自己的安裝過程記下來。那個后記也很有用的。

gcc編譯源代碼需要創建臨時文件,而gcc又只能安裝在手機內存中使用(因為需要755權限),因此必須使用root來調用它。

 

1、下載gcc plugin for C4Droid,解壓其中的gcc文件夾出來,里面有基本的編譯工具。如果要使用Qt,則將qt文件夾中的gcc和上述gcc文件夾合並即可。

2、將gcc文件夾復制到/system或/data文件夾中,但不能是/dev或/cache中。如果為了美觀,也可以將gcc文件夾的權限改為755。假設安裝到了/system中。

3、在gcc根目錄下創建一個用於修改文件權限的腳本chgmod.sh,內容:

echo 1..
chmod 755 ./bin/*
chmod 755 ./arm-linux-androideabi/bin/*
chmod 755 ./libexec/gcc/arm-linux-androideabi/4.7.1/*
echo 2..

4、再創建一個用於設置gcc環境變量的腳本setgcc.sh,內容:

echo 1..
export GCCHOME=/system/gcc
export GCCPATH=$GCCHOME/bin:$GCCHOME/arm-linux-androideabi/bin:$GCCHOME/libexec
export PATH=$PATH:$GCCHOME:$GCCPATH
echo 2..
su
echo 3..

5、修改以上文件屬性為755。

6、嘗試先寫一個源程序test.c,內容:

#include <stdio.h>

int
main(void) {   printf("Hello world!\n");   return 0;
}

7、安裝Android上的終端程序,我用的是BTEP。

8、在終端中輸入命令(順序不可變),獲取root權限:

su

切換目錄:

cd /system/gcc

執行腳本,修改權限(只需運行一次,以后可跳過):

./chgmod.sh

設置gcc環境變量:

./setgcc.sh

這個腳本執行后將會再次進入su,為的是使export設置的變量繼續生效。退出后會有提示。

如果終端沒有報錯,則繼續,否則檢查腳本內容里的目錄是否正確。

9、輸入:

gcc -Wall -o test test.c

如果終端報錯,回到本文開頭重新看過,看看是本文錯了還是自己寫錯腳本了;

如果gcc報錯,不關我的事,戴上眼鏡看看源程序是不是錯了。

待gcc輸出一大包字符后,完成編譯。

10、輸入:

./test

輸出“Hello world!”,噢耶!完成!

以后要使用gcc就從步驟8開始了!

 


后記:

寫了一大包,不就是寫如何設置環境變量和保持變量效果的問題嘛!有一個更好的方法,就是直接修改手機根目錄下的init.rc文件:

1、用RE的編輯器編輯init.rc,在此之前最好備份。

2、找到有一大堆export的那部分,在那部分的最后添加:

export GCCHOME=/system/gcc
export GCCPATH=$GCCHOME/bin:$GCCHOME/arm-linux-androideabi/bin:$GCCHOME/libexec export PATH=$PATH:$GCCHOME:$GCCPATH

3、保存退出,如果出現了什么亂子就直接將備份的文件還原為init.rc。

方法還沒試過(懶:P),但理論上可以,因為sh和su下用export輸出的環境變量是一樣的。試試吧!但是手機重啟之后要檢查一下init.rc是否被還原了……

第一次發文章,不會排版,湊合着看吧……


免責聲明!

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



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