I finally got GNUstep working (on windows), and it compiles and runs fine. However, whenever I try to use NSLog, I get the following error:
$ gcc -o hello hello.m -I /GNUstep/System/Library/Headers \
> -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base
hello.m: In function 'main':
hello.m:4:5: error: cannot find interface declaration for 'NXConstantString'
My source code:
#import <Foundation/Foundation.h>
int main(void) {
NSLog(@"hello world");
}
It is -
NSLog(@"hello world");
not
NSlog(@"hello world"); // 'l' should be upper case in NSLog
Try this -
gcc -o hello hello.m -I /usr/lib/GNUstep/System/Library/Headers \
-L /usr/lib/GNUstep/System/Library/Libraries/ -lgnustep-base \
-fconstant-string-class=NSConstantString
How to compile objective c programs using gcc
Try the following:
$gcc -o hello hello.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString
Note
-fconstant-string-class=NSConstantString
without this command it consider constant string objects as a class type NXConstantString
.
To run:
$./hello.m or whatever your objective-c code file name.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With