Reputation: 1188
I am practicing Objective-C under Ubuntu using gcc 4.8.2.
I compile my Objective-C programs like so:
gcc `gnustep-config --objc-flags` -lgnustep-base demo.m -o demo -I
/usr/include/GNUstep/ -L /usr/lib/GNUstep/ -lobjc -lgnustep-base
All good, but I thought that's too much, why don't I create a shell script to do it. So, I have this following bash script in file ccc.sh:
#!/bin/bash
gcc `gnustep-config --objc-flags` -lgnustep-base "$1" -o "$2"
-I /usr/include/GNUstep/ -L /usr/lib/GNUstep/ -lobjc -lgnustep-base
But, when I run ./ccc.sh demo.m demo
, I get all types of undefined reference errors:
/home/stack0verflow/oc/demo.m:35: undefined reference to `objc_msg_lookup'
/home/stack0verflow/oc/demo.m:35: undefined reference to `objc_msg_lookup'
/home/stack0verflow/oc/demo.m:36: undefined reference to `objc_msg_lookup'
/home/stack0verflow/oc/demo.m:37: undefined reference to `objc_msg_lookup'
/home/stack0verflow/oc/demo.m:39: undefined reference to `objc_msg_lookup'
/home/stack0verflow/oc/demo.m:40: undefined reference to `NSLog'
/home/stack0verflow/oc/demo.m:42: undefined reference to `objc_get_class'
What am I missing in my shell script? Thank you.
Upvotes: 0
Views: 221
Reputation: 1188
Ah, stupid. Can't break up the gcc command line in my shell script. Once I edited it and make sure that the entire command sits in a single line, ./ccc.sh demo.m demo
worked.
Upvotes: 1