I want my software to be upgraded through the normal means. I don't want to monitor the Go website for new versions and I don't want the tools themselves to phone home with update checks (especially if Google is behind them).
I now notice that Ubuntu packages golang-go in their repositories, so I suppose Go is on par with Meson and Ninja. Strange that they don't mention that on their download page, though.
You can also easily cross-platform compile with Go. Try that with C without jumping through hoops !
Clang has "--target=arm-linux-gnueabihf" to cross compile to ARM. You might need to go more specific (i.e. "--target=riscv64 -march=rv64gc" for specific RISCV configurations) but it's just a single command line flag. With GCC/G++ you need the dedicated compiler packaged separately to save space, but you'd use environment variables (export CC="arm-linux-gnueabihf-gcc"; export CXX="export CC="arm-linux-gnueabihf-g++").
The only difficulty you'd run into is when you want to dynamically link the produced binary (because you need a compatible .so to link against). You'll have the same problem in any language, though.
Comments
Perhaps "install" is the wrong word.
I want my software to be upgraded through the normal means. I don't want to monitor the Go website for new versions and I don't want the tools themselves to phone home with update checks (especially if Google is behind them).
I now notice that Ubuntu packages golang-go in their repositories, so I suppose Go is on par with Meson and Ninja. Strange that they don't mention that on their download page, though.
Clang has "--target=arm-linux-gnueabihf" to cross compile to ARM. You might need to go more specific (i.e. "--target=riscv64 -march=rv64gc" for specific RISCV configurations) but it's just a single command line flag. With GCC/G++ you need the dedicated compiler packaged separately to save space, but you'd use environment variables (export CC="arm-linux-gnueabihf-gcc"; export CXX="export CC="arm-linux-gnueabihf-g++").
The only difficulty you'd run into is when you want to dynamically link the produced binary (because you need a compatible .so to link against). You'll have the same problem in any language, though.