I found a number of similar questions (e.g. this, that or this), but none of them helped me solve my problem. I have a *.so file (from the core of gnss-sdr) that, as indicat
I have found in the past that this type of error is caused by the lack of proper extern "C" { ... }
bracketing in an include file.
The pedantically correct way to check that a .so
exports a symbol is nm --demangle --dynamic --defined-only --extern-only <lib.so> | grep <symbol>
.
Without --defined-only
your command also shows undefined symbols.
Without --extern-only
it also shows symbols with internal linkage which are unavailable for linking.
It looks like you need to link another library because Gps_Ephemeris::Gps_Ephermeris()
is not resolved by linking libgnss_system_parameters_dyn.so
. A good way to start is that library's documentation and examples.