Re: NSObject errors compiling Objective-C programs

Richard Frith-Macdonald <[email protected]>
Newsgroups gmane.comp.lib.gnustep.user
Message-ID <f8c2ef6554fb7624a1d5628d99ca2893@blackbox>
On 2005-10-10 06:41:02 +0000 Mehul N. Sanghvi <[email protected]> 
wrote:

> 
> OK, so I've got gnustep-base and gnustep-make installed.  I'm trying to
> follow the code as given on the "Objective-C for Beginners" website which 
> is 
> refrenced from the gnustep.org website.
> 
> I am getting the following error when I try to compile the simple
> fractions example:
> 
> prompt% make
> Making all for objc_program fraction_driver...
> Compiling file fraction_driver.m ...
> Compiling file fraction.m ...
> Linking objc_program fraction_driver ...
> ../shared_obj/fraction.o(.data.rel+0xf4): undefined reference to 
> `__objc_class_name_NSObject'
> collect2: ld returned 1 exit status
> make[1]: *** [shared_obj/fraction_driver] Error 1
> make: *** [fraction_driver.all.objc-program.variables] Error 2
> 
> 
> What am I doing wrong ?  I'm just trying to compile a simple
> Objective-C program, using the GNUstep make system.

You are building a standalone program which doesn't use the GNUstep base 
library ... as such, you can't have it usse anything in the base library 
(such as NSObject).

This is probably not what you want.

I guess you want to build a command-line tool using the base library ... for 
that your makefile needs to use TOOL_NAME rather than OBJC_PROGRAM_NAME, and 
include tool.make rather than objc.make

> 
> cheers,
> 
>      mehul
> 
> 
> ---- begin header file ----
> #import <Foundation/Foundation.h>
> 
> @interface Fraction: NSObject
> {
>   int numerator;
>   int denominator;
> }
> 
> /* rest of code snipped */
> ---- end header file ----
> 
> 
> ==== GNUmakefile ====
> include $(GNUSTEP_MAKEFILES)/common.make
> 
> # Space seperated list of executables to be built OBJC_PROGRAM_NAME = 
> fraction_driver
> 
> fraction_driver_OBJC_FILES = fraction_driver.m fraction.m
> 
> include GNUmakefile.preamble
> include $(GNUSTEP_MAKEFILES)/objc.make
> ==== GNUmakefile ends ====
> 
> 
> ~~~~ GNUmakefile.preamble ~~~~~
> ADDITIONAL_OBJCFLAGS += -Wall -Wno-import #-fnext-runtime ~~~~ 
> GNUmakefile.preamble ~~~~~
> 
> 
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.