Stack0verflow
Stack0verflow

Reputation: 1188

Shell script to gcc Objective-C?

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

Answers (1)

Stack0verflow
Stack0verflow

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

Related Questions