前言
都知道,在Windows,Linux,Mac等平台上,C语言程序的运行十分简单,但是在移动端上,比如Android系统上,就存在一些困难。本文就是为解决这一问题而生。
方案一
我比较推荐,因为这个方法比较完善,C语言执行结果较好。
需求
需要运行如下C语言程序
1 | #include <stdio.h> |
准备
在Google Play或者其他应用商店下载Termux软件并安装。
打开Termux,执行
1
ls
命令,没有出现storage字样,就必须
1
termux-setup-storage
方便以后访问sdcard文件内容。
了解Termux软件的目录是~/storage/shared/,其下文件才是你在系统的文件管理器下看到的文件
安装C语言编译程序
1
pkg install clang
开始
首先执行
1 | cd storage/shared/ |
接下来便可以执行你的C语言程序了。
我需要运行上述需求里的C语言代码,我需要新建一个文件夹(如myc文件夹),可以手动用文件管理器创建,也可以用命令
1 | mkdir myc |
打开新建的文件夹(我新建的是myc文件夹,所以我打开cd myc)
1 | cd myc |
下面可以手动或者命令新建一个以.c结尾的文件,(我创建一个ifirst.c),用文本的方式打开,输入上述需求中的代码。保存后,就可以运行了。
运行C
可以使用
1
gcc -o te ifirst.c
编译ifirst.c文件,生成te文件,接着运行编译好了的te文件
1
./te
就可以看见程序输出HelloWorld!My C的结果了。
也可以使用
1
clang ifirst.c
或者
1
gcc ifirst.c
两者效果一样
编译ifirst.c文件,生成a.out文件,接着运行编译好了的a.out文件1
./a.out
也会得到HelloWorld!My C的结果
关于Permission denied的错误处理
运行上述编译好了的文件te或者a.out有的会报错:Permission denied,建议按照如下方法处理。
原因是在sdcard目录没有运行的权限
可以使用
1
cp ./te ~/te
再运行
1
~/te
结果变正常了
或者使用
1
cp ./a.out ~/a.out
再运行
1
~/a.out
也可以
使用脚本
- 下载runC文件:下载runC,解压后将其中的runC文件复制到C语言程序目录
或者 在C语言程序目录1
wget -O runC https://gitee.com/kuangtant/runC/raw/master/runC
- 将runC文件和你要运行的C语言程序放在一起,采用gcc 编译,我的是ifirst.c生成a.out文件
1
gcc ifirst.c
- 最后,命令执行就可以看到结果了
1
bash runC
方案二
网络上的C语言编译器较多,可以下载使用,不过还是最推荐方案一;
由于这类产品的编译结果及原理各有千秋,所以,具体效果如何,就不一一推荐了。