Hello all,
Since the program I'm trying to modify (replace all the glContexts of) is
written in Objective-C, I need to be able to use the equalizer classes from
within a Cocoa Framework. I thought I would try to compile eqHello.cpp as
eqHello.mm since in Objective-C++ you can mix & match most syntax.
So I made a new XCode project and got all the libraries linked in and such,
and compiling the eqHello file as a .cpp compiles and runs (although it
crashes). Compiling it as a .mm file fails with the following errors:
cd /Users/pebble/Documents/EQTest5
/Developer/usr/bin/gcc-4.0 -x objective-c++ -arch i386
-fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0
-Werror -Wreturn-type -Wunused-variable -D_GLIBCXX_DEBUG=1
-D_GLIBCXX_DEBUG_PEDANTIC=1 -isysroot /Developer/SDKs/MacOSX10.5.sdk
-mfix-and-continue -fvisibility-inlines-hidden -mmacosx-version-min=10.5
-gdwarf-2 -iquote
/Users/pebble/Documents/EQTest5/build/EQTest5.build/Debug/EQTest5.build/EQTest5-generated-files.hmap
-I/Users/pebble/Documents/EQTest5/build/EQTest5.build/Debug/EQTest5.build/EQTest5-own-target-headers.hmap
-I/Users/pebble/Documents/EQTest5/build/EQTest5.build/Debug/EQTest5.build/EQTest5-all-target-headers.hmap
-iquote
/Users/pebble/Documents/EQTest5/build/EQTest5.build/Debug/EQTest5.build/EQTest5-project-headers.hmap
-F/Users/pebble/Documents/EQTest5/build/Debug
-I/Users/pebble/Documents/EQTest5/build/Debug/include
-I/Users/pebble/Documents/equalizer/build/XCode/include
-I/Developer/SDKs/MacOSX10.5.sdk/usr/X11/include
-I/Users/pebble/Documents/EQTest5/build/include
-I/Users/pebble/Documents/EQTest5/build/EQTest5.build/Debug/EQTest5.build/DerivedSources
-DGLEW_MX -DDARWIN -DGLEW_APPLE_GLX -Wall -Wextra -Wnon-virtual-dtor
-Wsign-promo -Wshadow -Wno-unknown-pragmas -Wno-unused-parameter
-Wno-write-strings -c /Users/pebble/Documents/EQTest5/main.mm -o
/Users/pebble/Documents/EQTest5/build/EQTest5.build/Debug/EQTest5.build/Objects-normal/i386/main.o
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/objectVersion.h:
In member function 'bool eq::net::ObjectVersion::operator<(const
eq::net::ObjectVersion&) const':
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/objectVersion.h:43:
error: cannot find protocol declaration for 'rhs'
/Developer/SDKs/MacOSX10.5.sdk/usr/include/objc/objc.h: At global scope:
/Developer/SDKs/MacOSX10.5.sdk/usr/include/objc/objc.h:43: error:
conflicting declaration 'typedef signed char BOOL'
/Developer/SDKs/MacOSX10.5.sdk/usr/X11/include/X11/Xmd.h:165: error: 'BOOL'
has a previous declaration as 'typedef CARD8 BOOL'
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/packets.h: In
constructor
'eq::net::SessionGetIDMasterReplyPacket::SessionGetIDMasterReplyPacket(const
eq::net::SessionGetIDMasterPacket*)':
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/packets.h:373:
error: expected unqualified-id before '=' token
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataIStream.h:
In member function 'eq::net::DataIStream&
eq::net::DataIStream::operator>>(T&) [with T = eq::base::UUID]':
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataIStream.h:153:
error: expected unqualified-id before '.' token
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:
In member function 'eq::net::DataOStream&
eq::net::DataOStream::operator<<(const T&) [with T = eq::base::UUID]':
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:190:
error: request for member 'convertToNetwork' in 'eq::net::out', which is of
non-class type 'eq::base::UUID ()(objc_object*)'
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:191:
error: ISO C++ forbids applying 'sizeof' to an expression of function type
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:191:
error: invalid conversion from 'eq::base::UUID (*)(objc_object*)' to 'const
void*'
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:191:
error: initializing argument 1 of 'void eq::net::DataOStream::write(const
void*, uint64_t)'
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/objectVersion.h:43:
error: cannot find protocol declaration for 'rhs'
/Developer/SDKs/MacOSX10.5.sdk/usr/include/objc/objc.h: At global scope:
/Developer/SDKs/MacOSX10.5.sdk/usr/include/objc/objc.h:43: error:
conflicting declaration 'typedef signed char BOOL'
/Developer/SDKs/MacOSX10.5.sdk/usr/X11/include/X11/Xmd.h:165: error:
'BOOL'
has a previous declaration as 'typedef CARD8 BOOL'
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/packets.h:373:
error: expected unqualified-id before '=' token
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataIStream.h:153:
error: expected unqualified-id before '.' token
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:190:
error: request for member 'convertToNetwork' in 'eq::net::out', which is of
non-class type 'eq::base::UUID ()(objc_object*)'
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:191:
error: ISO C++ forbids applying 'sizeof' to an expression of function type
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:191:
error: invalid conversion from 'eq::base::UUID (*)(objc_object*)' to 'const
void*'
/Users/pebble/Documents/equalizer/build/XCode/include/eq/net/dataOStream.h:191:
error: initializing argument 1 of 'void eq::net::DataOStream::write(const
void*, uint64_t)'
I feel like I'm going about it the completely wrong way, except the errors
(things like const void* and the BOOL) look like namespace errors.
help?
-Stephen Furlani
Biomedical Software Engineer
[email protected]
--
View this message in context:
http://n2.nabble.com/Objective-C-tp4263157p4263157.html
Sent from the Equalizer - Parallel Rendering mailing list archive at Nabble.com.
_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com