记一次用Termux与Acode搭建开发环境

本文主要记录我用Termux与Acode搭建OI环境的过程,但也是一篇教程。按照此方法不仅可以搭建OI环境,只要能在Termux运行的理论上都能开发,文中如有错误请在评论区指出。

我对OI环境的要求不高,只需要能编译运行c++单文件就行了。Acode可以用作代码编辑器,Termux可以用作运行环境。由于国内网络原因,只能从Github下载这两个软件。

Acode官方仓库: https://github.com/Acode-Foundation/Acode

Termux官方仓库: https://github.com/termux/termux-app

一开始我尝试的是Acode最受欢迎的插件——AcodeX提供的解决方案:在Termux里运行nodejs,然后安装他们提供的包,这些包会与Acode中的插件通信。

AcodeX官方插件页面: https://acode.app/plugin/bajrangcoder.acodex

但这给我一种杀鸡用牛刀的感觉,没必要。

我尝试的第二种方案是不使用任何插件。Acode支持SAF(Storage Access Framework),所以可以访问Termux内部储存。

关于Termux的储存,可以查看其官方wiki的页面: https://wiki.termux.com/wiki/Internal_and_external_storage

但每次都输入命令才能运行代码很麻烦。所以我把命令写在一个.sh文件里,又建了登录运行的.profile文件,里面定义了别名。

#runcpp.sh

clang++ main.cpp -std=c++26
./a.out
rm a.out

#.profile

alias r="sh runcpp.sh"
alias
#最后一行alias可以提醒我有哪些别名

现在我只需要输入一个r就可以运行了!

但这种方法仍有问题。SAF只能在Termux运行的时候用,Termux没运行的时候就无法编辑代码,所以我将源代码的储存位置移到了Acode随时可以访问的公共目录。我还开始使用clang-format进行格式化。后来又发现segmentation fault不显示,于是使用了exec。

#runcpp.sh

clang-format -i ~/storage/downloads/Workspace/main.cpp
clang++ ~/storage/downloads/Workspace/main.cpp -std=c++26&&exec ./a.out

Termux有一个叫Termux:Float的插件,可以在悬浮窗里运行Termux,这样就不用每次都要把Acode切后台了。

Termux:Float官方仓库: https://github.com/termux/termux-float

Termux默认的motd很长,所以我又把motd大部分都删了。motd的位置在~/../usr/etc/motd

最终效果如图:

最后特别感谢一篇Bilibili上的小天才T1平板安装任意第三方app教程。如果没有这篇教程,我不可能在我的垃圾平板上做出这些东西: https://www.bilibili.com/opus/917310662620741632

== 更新 ==
每次都要输入r才能运行依然很麻烦,好在Termux可以自定义按键,使用这样的按键配置可以实现一键运行:{macro: "r\n", display: 运行main.cpp}
下面是我目前使用的termux.properties文件:

extra-keys = [['ESC','CTRL','ALT','TAB','SHIFT','UP','DOWN',{macro: "r\n", display: 运行main.cpp}]
posted @ 2025-01-05 10:40  145a  阅读(913)  评论(0)    收藏  举报