Мне не нравится компилятор C по умолчанию clang
, предоставляемый Termux. Есть ли способ получить GNU GCC в моей среде Termux?
Другой способ получить gcc — добавить репозиторий сообщества, размещенный its-pointless, по адресу https://github.com/its-pointless/its-pointless.github.io . Исходники (более или менее) доступны на https://github.com/its-pointless/gcc_termux .
Другие популярные доступные пакеты включают numpy и scipy.
Дополнительную информацию об этом и других репозиториях сообщества можно найти в вики termux .
Чтобы добавить этот конкретный репозиторий в вашу среду termux, запустите:
# Get some needed tools. coreutils for mkdir command, gnugp for the signing key, and apt-transport-https to actually connect to the repo
apt-get update
apt-get --assume-yes upgrade
apt-get --assume-yes install coreutils gnupg2 apt-transport-https wget
# Make the sources.list.d directory
mkdir $PREFIX/etc/apt/sources.list.d
# Write the needed source file - Added Missing "> character on line below
echo "deb [trusted=yes] https://its-pointless.github.io/files/ termux extras" > $PREFIX/etc/apt/sources.list.d/pointless.list
# Download signing key from https://its-pointless.github.io/pointless.gpg
wget https://its-pointless.github.io/pointless.gpg
apt-key add pointless.gpg
# Update apt
apt update
(инструкции взяты с https://github.com/its-pointless/its-pointless.github.io/blob/master/setup-pointless-repo.sh )
Это очень интересное решение.
Сначала загрузите GCC для C4droid из Google Play.
Найдите его apk в разделе /data/app/com.n0n3m4.gcc4droid-#
, возьмите APK и распакуйте /assets/gcc.zip
. Теперь извлеките gcc.zip
в
/data/data/com.termux/files/usr/libexec
Применить chmod -R 644
ко всей папке и chmod -R 755
к ARCH/bin
, bin
и libexec
. Свяжите программы gcc с $PREFIX/bin
и вы сможете использовать GCC вместо Clang. Не забудьте добавить -pie
при компиляции исполняемых файлов.
Установите Arch Linux в Termux PRoot, чтобы получить полноценную среду разработки Linux. См. https://sdrausty.github.io/TermuxArch/docs/install для инструкций по установке. Используйте pacman -S base base-devel
для установки среды разработчика, которая включает GCC.
Я создал репозиторий termux с gcc 10.2.0, там как установить https://cctools.info/index.php/Termux_repository_with_cctools_packages_(gcc_with_fortran_support_etc)
Добавьте открытый ключ пакетов cctools:
wget -O - https://cctools.info/public.key | apt-key add -
Создайте новый список репозиториев:
echo "deb https://cctools.info termux cctools" > $PREFIX/etc/apt/sources.list.d/cctools.list
Списки обновлений пакетов:
apt update
Установите пакет gcc-cctools (он автоматически установит binutils-cctools):
apt install gcc-cctools
Установите пакет NDK для вашей архитектуры Android, используйте последний, например для aarch64:
apt install ndk-sysroot-cctools-api-26-aarch64
Чтобы показать все системные корни ndk для aarch64:
apt search ndk-sysroot-cctools | grep aarch64
Добавьте каталог с новыми компиляторами в PATH:
export PATH=$PREFIX/../cctools-toolchain/bin:$PATH
Проверь это:
gcc -v
Гаян Кавиратне
Олорин
Джао
apt install gcc-10
(илиgcc-9
илиgcc-8
)курокирасама
Джао
Джао
which gcc-10
/data/data/com.termux/files/usr/bin/gcc-10
$ gcc-10 --version
gcc-10 (GCC) 10.3.0
ночной бездельник