本文和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是否被還原了……
第一次發文章,不會排版,湊合着看吧……