Alas, a problem. I am running Ubuntu MATE for Pi4 64-bit. I can attest to the fact this is a non-Java error
Scanning dependencies of target indi_wmh_focuser
[ 20%] Building CXX object CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o
/home/jon/Projects/indi-wmh-focuser/wmh_focuser.cpp: In lambda function:
/home/jon/Projects/indi-wmh-focuser/wmh_focuser.cpp:346:12: warning: unused variable ‘ticks’ [-Wunused-variable]
346 | uint32_t ticks = (uint32_t) abs((int)targetPos - (int)FocusAbsPosN[0].value);
| ^~~~~
[ 40%] Building CXX object CMakeFiles/indi_wmh_focuser.dir/DEV_Config.cpp.o
[ 60%] Building C object CMakeFiles/indi_wmh_focuser.dir/DRV8825.c.o
[ 80%] Building C object CMakeFiles/indi_wmh_focuser.dir/bcm2835.c.o
[100%] Linking CXX executable indi_wmh_focuser
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o: in function `IndiWMHFocuser::Connect()':
wmh_focuser.cpp:(.text+0x3b4): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o: in function `IndiWMHFocuser::Disconnect()':
wmh_focuser.cpp:(.text+0x3f8): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: wmh_focuser.cpp:(.text+0x440): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o: in function `IndiWMHFocuser::initProperties()':
wmh_focuser.cpp:(.text+0x4e0): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: wmh_focuser.cpp:(.text+0x58c): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o:wmh_focuser.cpp:(.text+0x640): more undefined references to `INDI::BaseDevice::getDeviceName()' follow
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o: in function `IndiWMHFocuser::updateProperties()':
wmh_focuser.cpp:(.text+0x7d0): undefined reference to `INDI::BaseDevice::isConnected()'
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o: in function `IndiWMHFocuser::ISNewNumber(char const*, char const*, double*, char**, int)':
wmh_focuser.cpp:(.text+0x934): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o: in function `IndiWMHFocuser::ISNewSwitch(char const*, char const*, ISState*, char**, int)':
wmh_focuser.cpp:(.text+0xad8): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o: in function `IndiWMHFocuser::_gotoAbsolute(unsigned int)::{lambda(unsigned int)#1}::operator()(unsigned int) const':
wmh_focuser.cpp:(.text+0xf64): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: wmh_focuser.cpp:(.text+0xfbc): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: wmh_focuser.cpp:(.text+0x102c): undefined reference to `INDI::BaseDevice::getDeviceName()'
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o:wmh_focuser.cpp:(.text+0x1358): more undefined references to `INDI::BaseDevice::getDeviceName()' follow
/usr/bin/ld: CMakeFiles/indi_wmh_focuser.dir/wmh_focuser.cpp.o:(.data.rel.ro._ZTV14IndiWMHFocuser[_ZTV14IndiWMHFocuser]+0x178): undefined reference to `non-virtual thunk to INDI::Focuser::SetFocuserMaxPosition(unsigned int)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/indi_wmh_focuser.dir/build.make:129: indi_wmh_focuser] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/indi_wmh_focuser.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
Same error occurs on my x86_64 Xubuntu 20.04 desktop.