[chuck-users] ChucK compilation error (still, again?) -- similar to the Ubuntu GCC 4.3 problem

Hans Aberg haberg at math.su.se
Sun Sep 13 14:29:36 EDT 2009


On 13 Sep 2009, at 16:14, Andrew C. Smith wrote:

> So, I just upgraded to Snow Leopard (anyone else? I feel like the
> list's guinea pig here) and now I'm getting awful compilation errors.
> "gcc" gives me 4.2.1, as does g++, so it's not the exact same as the
> 4.3 problem from the forum.
>
> Before, I could download the CVS and compile straight-through, but now
> I get this:
>
> $ make osx
> make -f makefile.osx
> gcc -D__MACOSX_CORE__ -c -O3 rtmidi.cpp
> rtmidi.cpp: In function ‘int get_device_name(SInt32, char*, int)’:
> rtmidi.cpp:295: error: cannot convert ‘void**’ to ‘MIDIObjectRef*’ for
> argument ‘2’ to ‘OSStatus MIDIObjectFindByUniqueID(MIDIUniqueID,
> MIDIObjectRef*, MIDIObjectType*)’
> rtmidi.cpp:304: error: cast from ‘void*’ to ‘MIDIDeviceRef’ loses  
> precision
> rtmidi.cpp:306: error: cast from ‘void*’ to ‘MIDIEntityRef’ loses  
> precision
> rtmidi.cpp:312: error: cast from ‘void*’ to ‘MIDIEndpointRef’ loses  
> precision

These are typedef'ed to MIDIObjectRef, which in turn, is typedef'ed to  
UInt32, in
   /System/Library/Frameworks/CoreMIDI.framework/Headers/MIDIServices.h

Since 10.6 is 64-bit, a pointer cannot be held in a 32-bit integral  
type.

So this must be changed.

Happy code tweaking!

   Hans




More information about the chuck-users mailing list