lenovo – Advice on setting up cross compilation tool chain for Android 10 SDK29+?

I have a simple ‘helloworld.c” that I want to run from ADB shell then eventually create an app that can display it on my device.
Im quite new to C, Linux, Android, cross compiling, libraries in terms of real world results but Iv been doing a hell of a lot of reading and am getting used to my Linux (full install). I realise following various tutorials can be misleading due to the fact of outdated software / differnet hardware as I am attempting the above challenge on a relatively new device with relatively new hardware “android 10 R”. I could just do with some ‘best practice’ advice on choosing the correct libraries and tool chain setup.

I understand making the ‘helloworld’ as an app is more complicated requiring use of Android NDK, so first step is to get it working within ADB shell.

Device – Lenovo M8 FHD android 10 R

aarch64

armv8l ( returned from ADBShell> uname -m )

SDK29

Installed libraries –

ii g++ 4:9.3.0-1ubuntu2 amd64 GNU C++ compiler

ii g++-9 9.3.0-17ubuntu1~20.04 amd64 GNU C++ compiler

ii gcc 4:9.3.0-1ubuntu2 amd64 GNU C compiler
ii gcc-9 9.3.0-17ubuntu1~20.04 amd64 GNU C compiler

ii gcc-9-aarch64-linux-gnu 9.3.0-17ubuntu1~20.04cross2 amd64 GNU C compiler (cross compiler for arm64 architecture)

ii gcc-9-arm-linux-gnueabi 9.3.0-17ubuntu1~20.04cross2 amd64 GNU C compiler (cross compiler for armel architecture)

ii gcc-aarch64-linux-gnu 4:9.3.0-1ubuntu2 amd64 GNU C compiler for the arm64 architecture

ii gcc-arm-linux-gnueabi 4:9.3.0-1ubuntu2 amd64 GNU C compiler for the armel architecture

ii libllvm10:amd64 1:10.0.0-4ubuntu1 amd64 Modular compiler and toolchain technologies, runtime library

ii libllvm11:amd64 1:11.0.0-2~ubuntu20.04.1 amd64 Modular compiler and toolchain technologies, runtime library

ii libllvm11:i386 1:11.0.0-2~ubuntu20.04.1 i386 Modular compiler and toolchain technologies, runtime library

ii libxkbcommon0:amd64 0.10.0-1 amd64 library interface to the XKB compiler – shared library

ii libxkbcommon0:i386 0.10.0-1 i386 library interface to the XKB compiler – shared library

Firstly is the aarch64 above the correct cross compiler for my device?
Any clarification on how to make sure I have JUST the tools I need for getting helloworld in shell including relevent versions that work with SDK29 ?

So far when I try to run my cross compiler helloworld.c from shell I get – file not found error.
I have googled for many answers on this error and believe its a compilation error, so now Im just lost in libraries! and what did I do wrong. I think the tutorial I used has mislead me to wrong cross compiler choice, I don’t know?

ps I will try and clean this question up.
also I understand LLVM could help my problem but is this still experimental ?