I don't like the default C compiler clang
provided by Termux. Is there a way I can get GNU GCC in my Termux environment?
4 Answers
Another way to get gcc would be to add the community repo hosted by its-pointless at https://github.com/its-pointless/its-pointless.github.io. Sources are (more or less) available at https://github.com/its-pointless/gcc_termux.
Other popular packages available includes numpy and scipy.
More information about this and other community repositories can be found in the termux wiki.
To add this particular repository to your termux environment, run:
# 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
(instructions taken from https://github.com/its-pointless/its-pointless.github.io/blob/master/setup-pointless-repo.sh)
-
Instructions have been updated, for anyone coming here better to check the sh file in the last link. Aug 8, 2020 at 4:00
-
-
-
-
1the instructions in the answer are outdated and invalid but everything works fine if you run its-pointless.github.io/setup-pointless-repo.sh first.– djaoMay 27, 2022 at 12:26
This is a very interesting solution.
First download GCC for C4droid from Google Play.
Go find its apk under /data/app/com.n0n3m4.gcc4droid-#
, take the APK and extract /assets/gcc.zip
. Now extract gcc.zip
to
/data/data/com.termux/files/usr/libexec
Apply chmod -R 644
to the whole folder and chmod -R 755
to ARCH/bin
, bin
and libexec
. Link gcc programs to $PREFIX/bin
and you'll be able to use GCC instead of Clang. Remember to add -pie
when compiling executables.
Install Arch Linux in Termux PRoot to get a full Linux development environment.
See https://sdrausty.github.io/TermuxArch/docs/install for installation instructions. Use pacman -S base base-devel
to install the developer's environment which includes GCC.
I created termux repo with gcc 10.2.0, there how to install https://cctools.info/index.php/Termux_repository_with_cctools_packages_(gcc_with_fortran_support_etc)
Add cctools packages public key:
wget -O - https://cctools.info/public.key | apt-key add -
Create a new repository list:
echo "deb https://cctools.info termux cctools" > $PREFIX/etc/apt/sources.list.d/cctools.list
Update packages lists:
apt update
Install the package gcc-cctools(it will install binutils-cctools automatically):
apt install gcc-cctools
Install the NDK package for your android architecture, use the latest one, for example for aarch64:
apt install ndk-sysroot-cctools-api-26-aarch64
To show all ndk sysroots for aarch64:
apt search ndk-sysroot-cctools | grep aarch64
Add directory with new compilers to PATH:
export PATH=$PREFIX/../cctools-toolchain/bin:$PATH
Check it:
gcc -v
-
You might want to add trusted if apt complains askubuntu.com/a/1050824/1068697 Jul 26, 2022 at 23:05