buffer_ref_getbuffer and buffer_ref_getexists undefined for architecture...

jlake's icon

hello,

I get the following linker error when I try to compile my project:

Undefined symbols for architecture i386: "_buffer_ref_getbuffer"... "_buffer_ref_getexists"

Valid architectures is set to "i386 x86_64" and when I remove i386 I get the same error except it's undefined for x86_64. Note that all my other calls in the Buffer SDK are fine, it's only these two functions that the linker can't find.

I saw in one other post that another use had the same problem with buffer_ref_getexists() (which incidentally is not used in the simpwave~ example project) and claims to have fixed it, but he doesn't say how.

thanks for any help you can provide!

best,

Joe

jlake's icon

also, I know that accessing a buffer directly is deprecated, but I need to change the contents of a buffer. can I do this by simply writing over the samples I get when when I lock the buffer? it would also be good to be able to reallocate this memory if I want to change the length of the buffer or the number of channels...

thanks a lot!

Joe

vichug's icon

hm, something stupid, did you try to set architectures as "i386" not "i386 x86_64" ?

jlake's icon

I didn't try that because the first error was "undefined for i386", but I just tried it now, and it doesn't fix the problem. thank you for the suggestion though.

Timothy Place's icon

I have just looked into this and it appears you have found a bug in the SDK. We'll try to get that sorted out, but in the meantime...

The names of the two functions as exported by the MaxAudioAPI.framework are "buffer_ref_getobject" and "buffer_ref_exists".

Sorry for the hassle!