C++ being used for a library/loadable top level project does not result in C++ being used to compile the dependent project
This can be caused by using a C standard function like sprintf in the loadable project without the appropriate libraries. Because C/C++ use different standard libraries, you might report undefined reference to _sprintf_cdnopuxX undefined reference to _ctype.
You can workaround this by using C++ in the dependent project or to apply additional options to gcc in the dependent project. This causes the cpp libraries to be used instead of the c libraries: -mxc32cpp-lib -msmart-io=0 -G0.
Note: the G# parameter has to be the same between the top level and the dependent project.