手機 - Gemini PDA 4G - Android - Termux - 從ArduinoDroid提取avr-as、avr-gcc



由於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>.