由於Termux目前並沒有avr-gcc相關的套件可以安裝,因此,唯一的解決方式就是手動編譯avr-gcc,但是過程可以說是相當辛苦,遇到的問題超乎想像,迫使司徒放棄在Termux下編譯avr-gcc,雖然安裝Linux Deploy可以解決問題,不過每次都需要ssh登入,有點麻煩,於是司徒找尋其它可行方案,最終發現可以直接從ArduinoDroid提取使用,這才解決在Termux下使用avr-gcc的問題
1. 安裝ArduinoDroid並開啟執行(讓其安裝相關Binary)
2. 執行Termux命令
$ apt install tsu $ cd $ tsudo /system/bin/setenforce 0 $ tsudo cp -a /data/data/name.antonsmirnov.android.arduinodroid2/sdk/hardware/tools/avr . $ tsudo chown `whoami`:`whoami` -R avr $ cp -a avr/* ../usr/ $ rm avr $ avr-gcc --help usage: avr-gcc [options] file... Options: -pass-exit-codes Exit with highest error code from a phase --help Display this information --target-help Display target specific command line options --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...] Display specific types of command line options (Use '-v --help' to display command line options of sub-processes) --version Display compiler version information -dumpspecs Display all of the built in spec strings -dumpversion Display the version of the compiler -dumpmachine Display the compiler's target processor -print-search-dirs Display the directories in the compiler's search path -print-libgcc-file-name Display the name of the compiler's companion library -print-file-name=<lib> Display the full path to library <lib> -print-prog-name=<prog> Display the full path to compiler component <prog> -print-multiarch Display the target's normalized GNU triplet, used as a component in the library path -print-multi-directory Display the root directory for versions of libgcc -print-multi-lib Display the mapping between command line options and multiple library search directories -print-multi-os-directory Display the relative path to OS libraries -print-sysroot Display the target libraries directory -print-sysroot-headers-suffix Display the sysroot suffix used to find headers -Wa,<options> Pass comma-separated <options> on to the assembler -Wp,<options> Pass comma-separated <options> on to the preprocessor -Wl,<options> Pass comma-separated <options> on to the linker -Xassembler <arg> Pass <arg> on to the assembler -Xpreprocessor <arg> Pass <arg> on to the preprocessor -Xlinker <arg> Pass <arg> on to the linker -save-temps Do not delete intermediate files -save-temps=<arg> Do not delete intermediate files -no-canonical-prefixes Do not canonicalize paths when building relative prefixes to other gcc components -pipe Use pipes rather than intermediate files -time Time the execution of each subprocess -specs=<file> Override built-in specs with the contents of <file> -std=<standard> Assume that the input sources are for <standard> --sysroot=<directory> Use <directory> as the root directory for headers and libraries -B <directory> Add <directory> to the compiler's search paths -v Display the programs invoked by the compiler -### Like -v but options quoted and commands not executed -E Preprocess only; do not compile, assemble or link -S Compile only; do not assemble or link -c Compile and assemble, but do not link -o <file> Place the output into <file> -pie Create a position independent executable -shared Create a shared library -x <language> Specify the language of the following input files Permissible languages include: c c++ assembler none 'none' means revert to the default behavior of guessing the language based on the file's extension Options starting with -g, -f, -m, -O, -W, or --param are automatically passed on to the various sub-processes invoked by avr-gcc. In order to pass other options on to these processes the -W<letter> options must be used. For bug reporting instructions, please see: <http://gcc.gnu.org/bugs.html>.