14

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 4

7

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)

7
  • Instructions have been updated, for anyone coming here better to check the sh file in the last link. Aug 8, 2020 at 4:00
  • These repos don't have a gcc package.
    – Olórin
    Aug 10, 2020 at 7:59
  • apt install gcc-10 (or gcc-9 or gcc-8)
    – djao
    Oct 9, 2020 at 11:52
  • @djao cannot finf gcc-10? May 26, 2022 at 22:47
  • 1
    the instructions in the answer are outdated and invalid but everything works fine if you run its-pointless.github.io/setup-pointless-repo.sh first.
    – djao
    May 27, 2022 at 12:26
4

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.

1

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. Arch Linux in Termux PRoot

1

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
1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .