you have to add the objects build/core/DataFifo.o build/core/BelaContextFifo.o build/core/BelaContextSplitter.o to whatever settings you are using to create libbela.so. If you created that on Bela itself, make sure you have at least this commit on it

commit 63d5ccf053843ccc7030bbda2f8186dc96fed267
Author: Giulio Moro <giuliomoro@yahoo.it>
Date:   Sun Jan 26 20:45:05 2020 +0000

    core: added more object files to libbela

actually just figured it out... I just needed to rebuild lib

make lib

the other thing i needed to do, was to copy over default_main.o (or I guess i can compile that locally)
EDIT: indeed now I copy default_main.cpp, and compile that on the host.

anyway cross compiling is now working nice on macOS
im going to do some tidying up, and ensure its all running on Linux nicely, then will share what Ive done 🙂

basically, the goal is a quick to setup environment for anyone that wants to cross compile and use the the command line on mac or linux.

theres not really a lot to it, but I wanted it to be quick to install on new machines, as I use a few different macs and linux boxes here 😉

ok, Ive got the basics working on both linux and macos

https://github.com/TheTechnobear/bela_client

basic goal is cross-compiling client on mac/linux thats easy to install and use, currently im only interested in C++ support - so not SC/PD , but I guess those are no more than copying files and launching.

currently, it provides:
- a quick/easy install
- belaCompile, belaRun, belaCompileRun ... to compile/run simple cpp code (i.e. single render.cpp type things)
- belaExec, belaCopy functions to copy/execute on bela
- sets up normal Bela/scripts , so you can just type ide.sh stop

testing:
the mac version ive done a proper clean install on, the linux was a bit 'made up as i went along... as I had issues with the available clang/llvm versions on my distro... but i pretty confident its accurate (and certainly past installation its fine)

to do:
- add default options when running (as per IDE i guess)
- cmake template

cmake is the main thing, really things like belaCompile were just created so that I was clear on what compile option and executables I need to get things to compile - should be relatively easily for me to translate that to cmake (which Im pretty familiar with).

once thats done, I'll start using 'in anger' so no doubt might add a few more things, that make it easier to do the edit,test,run workflow....

I also want to think about
- where i put the compiled 'projects' on bela
- tailoring 'startup', so that i can run these projects.. or perhaps make 'compatible' with current startup routing (which starts via make)

    thetechnobear , but I guess those are no more than copying files and launching.

    Actually Pd projects are all built (linked-only, because all the .o files will already be ready), though - unless the provide a custom C++ file - the binaries are all the same. Either way, Bela/scripts/build_project.sh can take care of those.

    ebai101 However, I don't imagine that it's in the Bela dev's best interest to devote a lot of time to supporting a relatively small high-end community, so I think the more community-driven work that can be done in that field, the better.

    yup. The IDE is the pain-free way to getting started. More advanced users can use the scripts, make or any solution they come up with. The existence of the pre-built library is a way to encourage integration in different workflows (see, e.g.: here).
    @ebai101 do you want to add a wiki entry for your VS workflow?

    FWIW: I use vim on the board and make from the command line most of the times.

    thetechnobear (e.g. the fact the make field on the IDE is only 20 chars wide... thats not even enough for an include path 😉 )

    I know right, I just reopened this, which got closed for unclear reasons https://github.com/BelaPlatform/Bela/issues/362

    As always, there is much more to do than there is time available, so ... we do what we can and we very much welcome community contributions 🙂

      @thetechnobear looks awesome! I'll try it out when I can.

      giuliomoro @ebai101 do you want to add a wiki entry for your VS workflow?

      For sure - I wrote a post about it a while ago which I could edit into a page. I'd love to try and integrate with this new xc instead, though, since it looks like it'll make the setup easier.

        giuliomoro a docker image

        Funny you mention that, I actually tried that a little while ago - I imported a Bela image into docker and compiled some examples in a container. Everything seemed to run fine when I copied them to the board, with no other config required. I didn't have the time then to write something to interface it smoothly with the board, so I left it be.

        A toolchain like dockcross might be perfect - would just need to make the container filesystem line up with the Bela. It could probably be extended from a dockcross image actually; their linux-armv7a image is set up for the stock BBB.

          ebai101 A toolchain like dockcross might be perfect - would just need to make the container filesystem line up with the Bela. It could probably be extended from a dockcross image actually; their linux-armv7a image is set up for the stock BBB

          sounds promising, I may have a look if time allows

          sent you a PR for #624 to build a 'full' library of bela objects.

          also Ive switch xcBela over to use update_board and xcCompile now uses this new lib.