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