Stuck on silly linker error compiling external with buffer operations

Iain Duncan's icon

Hi folks, I know I figured this out before, but can't remember how and am not finding previous posts with search. I started a new external from UI example, copy the xcode project. Now I've added buffer functions, and I'm getting linker errors. I'm my includes are:

#include "ext.h"
#include "ext_obex.h"
#include "jgraphics.h"
#include "ext_buffer.h"
#include "ext_common.h"
#include "ext_obex_util.h"

I'm getting the errors below. Does anyone know what the step I'm missing might be?

thanks!
errors:

Undefined symbols for architecture x86_64:

"_buffer_getframecount", referenced from:

_xtmgrid_read_buffer in xtm.grid.o

"_buffer_locksamples", referenced from:

_xtmgrid_read_buffer in xtm.grid.o

"_buffer_ref_getobject", referenced from:

_xtmgrid_read_buffer in xtm.grid.o

"_buffer_ref_new", referenced from:

_xtmgrid_read_buffer in xtm.grid.o

"_buffer_unlocksamples", referenced from:

_xtmgrid_read_buffer in xtm.grid.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

Luigi Castelli's icon

Hi Iain,

I hope someday I will get to know you in person.
I am becoming a fan of yours...

Generally when I get errors like these it's because I forgot to link against the MaxAudioAPI library.
Very rarely it could also depend on the inclusion order of my header files.
Lastly, I think you should try to include z_dsp.h.

Iain Duncan's icon

Thanks Luigi! I hope one day we get to all hang at computer music conferences again... sure would be nice to meet people.

I got it solved, but only in classic cargo cult style - banged my head on my desk for a while and then just copied over a working xcodeproject from my main external and stepped through it replacing everything. One of these days I really need to learn xcode properly, but it's way down the list of pressing concerns 99% of the time! Thanks for the tips again though. :-)

Iain Duncan's icon

And Luigi, I should say that you have been the one who got me unstuck probably dozens of times on this journey, whether in real time or in searching the archives for helpful SDK answers. So thanks again!!