Использовать компилятор GCC в Termux?

Мне не нравится компилятор C по умолчанию clang, предоставляемый Termux. Есть ли способ получить GNU GCC в моей среде Termux?

Ответы (4)

Другой способ получить 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 )

Инструкции обновлены, для всех, кто сюда зайдет, лучше проверить файл sh по последней ссылке.
В этих репозиториях нет пакета gcc.
apt install gcc-10(или gcc-9или gcc-8)
@djao не может найти gcc-10?
инструкции в ответе устарели и недействительны, но все работает нормально, если вы сначала запустите its-pointless.github.io/setup-pointless-repo.sh .
which gcc-10 /data/data/com.termux/files/usr/bin/gcc-10 $ gcc-10 --version gcc-10 (GCC) 10.3.0
Есть ли в termux команда для переключения ч/б компиляторов. Как чейнровер на gcc-10 от clang

Это очень интересное решение.

Сначала загрузите 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.Arch Linux в Termux PRoot

Я создал репозиторий 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 жалуется на askubuntu.com/a/1050824/1068697.