Quote Originally Posted by d_stranz View Post
I do not know if this is the cause, but unlike in Windows with Microsoft compilers, the order of modules specified in the linker command matters in linux / gcc. If any module depends on references defined in another module, the module that resolves the dependency must come after the module that needs it on the command line.

I pounded my head on the wall for some time trying to get something to link before I learned this nugget.
I don't understand why, but starting over with host Ubuntu 20.04 works fine.

Someone posted that on another forum, but that didn't make sense to me. And, since it takes a LONG time to recompile everything that's needed to get to the link stage, I was hesitant to even try. Seemed like all I should need was the right toolchain.

But, spent a couple of days trying various gcc and g++ versions, including the version on the target (Bullseye aarch rpi) and the version on Ubuntu 20.04 on the Ubuntu 22 host.

I followed the guide exactly--on Ubuntu 22 there were several issues I was able to work-around just to get to the "show-stopper" at link time.

On Ubuntu 20.04, worked first time, zero issues!

Go figure.