ok, so the issue is you are compiling all the cpp files under rnbo..
the idea generally is to actually just include RNBO.cpp into you project, and then that includes various .cpp files.
the difference, is its implying an order than cpp files are compiled, and I guess some dependancies.
(Ive no idea why they label them cpp, when clearly they are acting more like header files!)
so what I did to fix was.
move rnbo, to above the project folder.. so that its content is never compiled.
then changed run.sh to include it from there
e.g.
-I\$(PROJECT_DIR)/../rnbo/common -I\$(PROJECT_DIR)/../rnbo
(edit: odd, I dont seem to be able to include make command in code block , forum has an unknown error when posting)
finally I copy RNBO.cpp into the project.
so basically, we are doing as required...
using RNBO.cpp to bring in the other cpp files, which are on the include path , thanks to run.sh
Ive done something similar to this before with Bela...
I dont really like having libs under ~/Bela/projects but unclear where it would be better to place.
what would be nicer, is if we could tell bela NOT to compile sub-directories, or let us create our own makefiles for these circumstances?
EDIT:
ok, given restrictions, Ive decided what Im going to do is...
place rnbo folder into ~/Bela/rnbo (so it'll be shared across projects)
this means run.sh simply becomes
CPPFLAGS="-I./rnbo/common -I./rnbo -DRNBO_USE_FLOAT32"
then have my own rnbo.cpp, which just contains
#include "RNBO.h"
#include "RNBO.cpp"
this means, any time RNBO is updated, I simply copy the new generated rnbo folder to ~/Bela/rnbo, unchanged.
so the template is basically just render.cpp + this simple rnbo.cpp
and we just drop rnbo_source.cpp into the project.
copying to ~/Bela/rnbo is not as nice as dropping into IDE... but feels like its going to be more future proof,
as including RNBO.cpp is what C74 are 'expecting'