Thanx a lot. It helps. But can I directly link Objective-C to C++ throught the C interface which the C++ library offers ?
After apply the CC=g++, the error message becomes .../libgnustep-base.so: undefined reference to '__objc_msg_forward' .../libgnustep-base.so: undefined reference to '__objc_msg_thread_add' .../libgnustep-base.so: undefined reference to '__objc_msg_thread_remove' Or do I need to write a C library as the bridge between Objective-C and C++ ? Thanx again. Yen-Ju >From: Pascal Bourguignon <[EMAIL PROTECTED]> >Reply-To: <[EMAIL PROTECTED]> >To: [EMAIL PROTECTED] >CC: [EMAIL PROTECTED] >Subject: Re: Link to C++ library >Date: Tue, 10 Sep 2002 22:38:13 +0200 (CEST) > > > > From: "Yen-Ju Chen" <[EMAIL PROTECTED]> > > Date: Tue, 10 Sep 2002 15:52:52 -0400 > > > > Hi, > > > > I try to use the id3lib (http://www.id3lib.org), > > which is a C++ library, but offer the C interface. > > But I met a problem about linking between id3lib and standard C++ >library. > > Is it possible to use such C++ library with C interface in GNUstep ? > > > > Yen-Ju > > >I do link routinely C++ libraries into GNUstep / Objective-C >applications without any problem, passing thru a C interface. > >Here is an example of GNUmakefile I used lately. The only notable >thing is the use of the g++ compiler (CC=g++) to compile the >MyCppLibCalls.c file, which contains only simple C functions each >sending a message to a C++ object from libMyCppLib.a, which is a >library of C++ objects. > >------------------------------------------------------------------------ >include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/common.make >#GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_USER_ROOT) >GNUSTEP_INSTALLATION_DIR=$(INSTALLDIR) > >OBJCFLAGS += -g -Wall -DUNIX #-DSTRICT_OPENSTEP >CFLAGS += -g -Wall -DUNIX #-DSTRICT_OPENSTEP ># (For now, the compilation on GNUstep with STRICT_OPENSTEP is broken). > >ADDITIONAL_INCLUDE_DIRS = \ > -I. \ > -IUtilities.subproj \ > -I$(INSTALLDIR) \ > -I$(INSTALLDIR)/MyCppLib/interfaces > >CC=g++ > >-include GNUmakefile.preamble > > >SUBPROJECTS=\ > Utilities.subproj > >include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/aggregate.make > > >APP_NAME=YyyyTest >YyyyTest_PRINCIPAL_CLASS=YyyyTest >YyyyTest_APPLICATION_ICON=icon.tiff >YyyyTest_RESOURCE_FILES=$(YyyyTest_APPLICATION_ICON) >YyyyTest_RESOURCE_DIRS= >YyyyTest_SUBPROJECTS=$(SUBPROJECTS) >YyyyTest_OTHER_LIBRARIES=\ > $(INSTALLDIR)/MyCppLib/libraries/libMyCppLib.a \ > /usr/lib/libmcheck.a >YyyyTest_TOOL_LIBS=$(YyyyTest_OTHER_LIBRARIES) >YyyyTest_LIB_DIRS= >YyyyTest_C_FILES=\ > MyCppLibCalls.c >YyyyTest_OBJC_FILES=\ > YyyyTest_main.m \ > YyyyTest.m \ > YyyyCLog.m \ > YyyyCTree.m \ > YyyyVTree.m \ > YyyyDictionary.m \ > YyyyObject.m \ > YyyyLogToCallBack.m \ > YyyyFileDS.m \ > YyyyReference.m \ > YyyyElement.m \ > YyyyTree.m > > >include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/application.make > >-include GNUmakefile.postamble > >#END# >------------------------------------------------------------------------ > >-- >__Pascal_Bourguignon__ http://www.informatimago.com/ >---------------------------------------------------------------------- > The name is Baud,...... James Baud. _________________________________________________________________ MSN Photos is the easiest way to share and print your photos: http://photos.msn.com/support/worldwide.aspx _______________________________________________ Help-gnustep mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/help-gnustep
