android 安裝gcc環境


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

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

 測試手機:xiaomi note

1、下載gcc plugin for C4Droid https://www.cr173.com/soft/757968.html,解壓其中的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=/data/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("success\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

error: only position independent executables (PIE) are supported.

 需要采用pie編譯

LOCAL_CFLAGS += -pie -fPIE

LOCAL_LDFLAGS += -pie -fPIE

如:gcc -Wall -pie -fPIE -o test test.c


后記:

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

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

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

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

3、保存退出,出現錯誤 Read-only file system, 使用命令mount -o remount,rw / 修改init.environ.rc,在最后添加環境數據,修改並保存再umount /


免責聲明!

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



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