> Does Objective-C++ work? I try g++ from ubuntu's gcc-snapshot It works to a certain extent, but support for it is not by any means complete. In particular, Objective-C exceptions in Objective-C++ simply don't work in GCC 4.6. That may get fixed in 4.7.
> I try to compile a file.mm > > 3Σ_OBJCC_FILES = \ > AXMath.mm \ > > Is that all I need in GNUmakefile? Yes, it's supposed to be. > g++ -rdynamic -shared-libgcc -fexceptions -fgnu-runtime -o 3Σ.app/./3Σ > [...] > > ./obj/3Σ.obj/AXMath.mm.o: In function `_i_AXMath(long long, long long)': > ...../AXMath.mm:9: undefined reference to > `objc_msg_lookup(objc_object*, objc_selector const*)' Presumably the signature of objc_msg_lookup() in the runtime does not match what the compiler is expecting ? In C++ the type of arguments does matter when calling a function. > If I don't build GS with http://svn.gna.org/svn/gnustep/libs/libobjc2/trunk > and use /usr/lib/gcc-snapshot/lib/libobjc_gc.so.3 I'll get a warning > > NSLog(@"WARNING your program is becoming multi-threaded, but you are > using an ObjectiveC runtime library which does not have a thread-safe > implementation of the +initialize method. This means that any classes > not already used may be incorrectly initialised, potentially causing > strange behaviors and crashes. Please build/run GNUstep-base with a > runtime which supports the +initialize method."); Sure. That is a known problem - I guess we'll try to get the runtime fix into 4.6.1. Having said that, that bug has always existed in the runtime and most people never noticed it. If you encounter it, you can work around it by manually calling a method of the relevant classes at the beginning of your program. Thanks _______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
