gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with compile


From: Jackie Gleason
Subject: Re: Problem with compile
Date: Sun, 25 Sep 2011 14:33:54 -0400

Ok using the code you provided and make with the parameters you suggested, see below.

It does suggest something is not installing right, for example... L/home/jackie/GNUstep/Library/Libraries

Although I never told it to install there and in fact was running under sudo during install it still shows it being installed in the home folder. Also, libraries does not hold any files...

Should I be checking out the project to the / directory? currently I am checking it out to my development code folder

address@hidden:~$ ls GNUstep/Library/
address@hidden:~$ ls GNUstep/Defaults/

Making all for tool LogTest...
gcc source.m -c \
     -MMD -MP -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -O2 -fgnu-runtime -I. -I/home/jackie/GNUstep/Library/Headers -I/usr/GNUstep/include \
      -o obj/LogTest.obj/source.m.o
gcc  -rdynamic      -shared-libgcc -fexceptions -fgnu-runtime -o obj/LogTest \
./obj/LogTest.obj/source.m.o \
    -L/home/jackie/GNUstep/Library/Libraries -L/usr/GNUstep/lib        -lpthread -lobjc   -lm
./obj/LogTest.obj/source.m.o:(.data.rel+0x0): undefined reference to `__objc_class_name_NSAutoreleasePool'
./obj/LogTest.obj/source.m.o:(.data.rel+0x8): undefined reference to `__objc_class_name_NSNumber'
collect2: ld returned 1 exit status
make[3]: *** [obj/LogTest] Error 1
make[2]: *** [internal-tool-all_] Error 2
make[1]: *** [LogTest.all.tool.variables] Error 2
make: *** [internal-all] Error 2


On Sun, Sep 25, 2011 at 1:57 PM, Eric Wasylishen <address@hidden> wrote:
Hm, I'm not sure what is going on. Your install procedure looks correct and I've used a very similar procedure on Ubuntu 11.04 successfully.

Here's another test program you could try which avoids constant strings:

#import <Foundation/Foundation.h>
#include <stdio.h>

int main(int argc, const char **argv)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

printf("testing NSNumber: %d\n", [[NSNumber numberWithInt: 3] intValue]);

[pool release];
return 0;
}

Also, could you try running make with "make messages=yes"? This will log the full command line used to run gcc.

How did you install the objective-C compiler and runtime? Just through the gobjc package?

-Eric

On 2011-09-25, at 11:03 AM, Jackie Gleason wrote:

Sorry, I was trying not to send the whole code, probably should have included that. 

Anyway still looking for an answer, I believe it has something to do with the way I am compiling from source since I don't see a Libraries folder under /usr/GnuStep


#include <stdio.h>
#import <Foundation/Foundation.h>

/* 
 * The next #include line is generally present in all Objective-C
 * source files that use GNUstep.  The Foundation.h header file
 * includes all the other standard header files you need.
 */

/*
 * Declare the Test class that implements the class method (classStringValue).
 */
@interface Test
+ (const char *) classStringValue;
@end

/*
 * Define the Test class and the class method (classStringValue).
 */
@implementation Test
+ (const char *) classStringValue;
{
  return "This is the string value of the Test class";
}
@end

/*
 * The main() function: pass a message to the Test class
 * and print the returned string.
 */
int main(void)
{
  NSString* s = @"Hello, world!";
  NSLog(s);
  //printf("%s\n", [Test classStringValue]);
  return 0;

Same issue is still happening

On Sun, Sep 25, 2011 at 12:51 PM, Eric Wasylishen <address@hidden> wrote:
Hey,
To use NSLog, NSString, and even constant strings (@""), you need to import the GNUstep base headers.
Adding:

#import <Foundation/Foundation.h>

to the top of your source.m file should fix the problem. :-)
Eric

On 2011-09-24, at 10:56 AM, Jackie Gleason wrote:

> I am trying to compile the following code
> Environment: Ubuntu 11.04 x64
>
> int main(void)
> {
>
>   NSString* s = @"Hello, world!";
>   NSLog(s);
>   //printf("%s\n", [Test classStringValue]);
>   return 0;
> }
>
> I install and Compile GNUstep by checking out the anonymous core, then compiling in the order make, base, gui, back. I compile all of them using the following command (under sudo shell)..
>
> ./configure --prefix=/usr/GnuStep
> make
> make install
>
> After make I run the following...
> . /usr/GnuStep/share/GNUstep/Makefiles/GNUstep.sh
>
> Finally I create the following GNUMakeFile...
>
> include $(GNUSTEP_MAKEFILES)/common.make
>
> TOOL_NAME = LogTest
> LogTest_OBJC_FILES = source.m
>
> include $(GNUSTEP_MAKEFILES)/tool.make
>
> But when I try running I get the following message...
> ~/Development/Code/personal/GnuStep/helloWorld$ make
> This is gnustep-make 2.6.1. Type 'make print-gnustep-make-help' for help.
> Making all for tool LogTest...
>  Compiling file source.m ...
> source.m: In function ‘main’:
> source.m:36:3: error: cannot find interface declaration for ‘NXConstantString’
> make[3]: *** [obj/LogTest.obj/source.m.o] Error 1
> make[2]: *** [internal-tool-all_] Error 2
> make[1]: *** [LogTest.all.tool.variables] Error 2
> make: *** [internal-all] Error 2
>
> the ls for the folder is...
> :/usr/GnuStep# ls
> bin  share
>
> Any help would be very appreciated.
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/gnustep-dev




_______________________________________________
Gnustep-dev mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/gnustep-dev



reply via email to

[Prev in Thread] Current Thread [Next in Thread]