Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Mac > Mac Programmer Help > Re: Cocoa Newbi...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 11 of 43 Topic 3769 of 3882
Post > Topic >>

Re: Cocoa Newbie Question.

by piscesboy <oraclmaster@[EMAIL PROTECTED] > Jun 11, 2008 at 03:35 PM

On Jun 11, 5:14=A0pm, Reinder Verlinde <rein...@[EMAIL PROTECTED]
> wrote:
> In article
> <fe79dd66-0263-429a-b443-a7a28ef08...@[EMAIL PROTECTED]
>,
>
>
>
> =A0piscesboy <oraclmas...@[EMAIL PROTECTED]
> wrote:
> > On Jun 11, 1:51=A0pm, piscesboy <oraclmas...@[EMAIL PROTECTED]
> wrote:
> > > This is my first time compiling objective C and C files together for
> > > one program. All of my files are C files except the main file which
is=

> > > in objective C called main.m
>
> > > Here is the code for my boilerplate main implementation file file:
>
> > > #im****t <Cocoa/Cocoa.h>
> > > #include "defs.h"
> > > #include "data.h"
> > > #include "treenode.h"
> > > #include "fileinout.h"
>
> > > int main(int argc, const char* argv[]){
>
> > > =A0 =A0 =A0 =A0 return 0;
>
> > > }
>
> > > All the other .h files in my #includes are C files containing my
> > > functions.
>
> > > Here is the error I get when I compile:
>
> > > gcc -Wno-im****t -ansi -pedantic -Wall -O2 -c treenode.c
> > > gcc -Wno-im****t -ansi -pedantic -Wall -O2 -c main.m
>
> This is not the cause of your error, but -Wno-im****t very, very likely
> is not something that you will want to compile .m files with. At the
> least, that would get rid of the warning
>
> > > main.m:1:2: warning: #im****t is a GCC extension
>
> I also guess that you are not using Xcode. Reason is that, on my system
> (10.5.3), Xcode compiles a simple main.m as
>
> CompileC /[...]/main.o /[...]/main.m normal ppc objective-c
> com.apple.compilers.gcc.4_0
>
> which eventually calls gcc passing a few zillion flags, including
>
> =A0 =A0 -fpascal-strings
> =A0 =A0 -x objective-c
> =A0 =A0 -arch i386
>
> If you are not using Xcode, start doing that, if only to check what
> command lines it produces.
>
> > > In file included from /System/Library/Frameworks/AppKit.framework/
> > > Headers/AppKit.h:53,
> > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0from
/System/Library/Frameworks/Coc=
oa.framework/
> > > Headers/Cocoa.h:13,
> > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0from main.m:1:
> > > /System/Library/Frameworks/AppKit.framework/Headers/NSEvent.h:72:
> > > error: syntax error before 'unsigned'
> > > make: *** [main.o] Error 1
>
> > > This is a fairly cryptic error for me but it appears to be
associated
> > > with the file #im****t 'ed from the Cocoa framework. What is going on
> > > here?
>
> > > I am an absolute beginner in using Objective C and I just want to
> > > learn to get this to compile for now.
>
> I guess that you are not telling the compiler that it is compiling
> Objective-C code. Hence, it interprets Cocoa/Cocoa.h as a C header,
> which in turn leads to your error message because some line in that
> header is not legal C. Producing good error messages for C code, and
> even more so for C++ code, in incredibly hard, and often impossible. The
> actual reason for the error could be any earlier line.
>
> > New development: I tracked down and looked at the file NSEvent.h and
> > looked at line 72 and found this:
>
> > static inline unsigned int NSEventMaskFromType(NSEventType type)
> > { return (1 << type); }
>
> > gcc says there is a syntax error before "unsigned".
>
> See my remark about producing good error messages for C/C++.
>
> > This appears to be the offending line of code for when I include
> > anything else it compiles fine. My worry now is that NSEvent.h is
> > busted and as I am a newbie I don't want to touch the code. I just
> > want to get it to work.
>
> > I never touched NSEvent.h in my life. What is going on here?
>
> On my system (10.5.3, with XCode 3.0), that line reads:
>
> NS_INLINE NSUInteger NSEventMaskFromType(NSEventType type) { return (1
> << type); }
>
> I guess your "tracking down" included preprocessing the code. If so,
> this is nothing to worry about. If not, can you check the actual file?
>
> If this does not help, start compiling a main.m that only contains
> "im****t <Cocoa/Cocoa.h>". If that succeeds, the problem likely is with
> some of your own files or with the commands you issue to compile your
> code.
>
> Reinder

Thanks for the help.

I tried something different albeit much simpler. This might clear
things up. Here is the makefile I am using to compile this newer, much
simpler program of mine that mixes Objective-C and regular C code:

TARGET=3Dtest
DEBUG=3Ddebugtest
GCC=3Dgcc -ansi -pedantic -Wall -O2 -o
GCCOP=3Dgcc -ansi -pedantic -Wall -O2 -c
GCCMOP=3Dgcc -x objective-c -framework Foundation -c
OBJECTS=3Dmain.o Person.o treenode.o
SOURCE=3Dmain.m Person.m treenode.c
TRASH=3D*.o *.c~ *.h~ $(TARGET) $(DEBUG) Makefile~

$(TARGET): $(OBJECTS) $(SOURCE)
	$(GCC) $(TARGET) $(OBJECTS)

main.o: main.m defs.h
	$(GCCMOP) main.m

Person.o: Person.m Person.h
	$(GCCMOP) Person.m

treenode.o: treenode.c treenode.h
	$(GCCMOP) treenode.c

clean:
	rm -f $(TRASH)

My target is called test and depends on the objective-C files main.m,
and Person.m and the regular C file treenode.c
This is the error produced when I type 'make':

gcc -x objective-c -framework Foundation -c main.m
powerpc-apple-darwin8-gcc-4.0.1: -framework: linker input file unused
because linking not done
powerpc-apple-darwin8-gcc-4.0.1: Foundation: linker input file unused
because linking not done
gcc -x objective-c -framework Foundation -c Person.m
powerpc-apple-darwin8-gcc-4.0.1: -framework: linker input file unused
because linking not done
powerpc-apple-darwin8-gcc-4.0.1: Foundation: linker input file unused
because linking not done
gcc -x objective-c -framework Foundation -c treenode.c
powerpc-apple-darwin8-gcc-4.0.1: -framework: linker input file unused
because linking not done
powerpc-apple-darwin8-gcc-4.0.1: Foundation: linker input file unused
because linking not done
gcc -ansi -pedantic -Wall -O2 -o test main.o Person.o treenode.o
/usr/bin/ld: Undefined symbols:
=2Eobjc_class_name_NSConstantString
=2Eobjc_class_name_NSObject
=2Eobjc_class_name_NSString
__NSConstantStringClassReference
_objc_msgSend
_objc_msgSendSuper
collect2: ld returned 1 exit status
make: *** [test] Error 1


I think I know what is going on: that I am not linking the generated
object files properly. I do not know how to properly invoke the linker
to link the generated objective-c files mixed with C files.

Could you help with that?

Thanks.
 




 43 Posts in Topic:
Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-11 10:51:10 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-11 11:17:42 
Re: Cocoa Newbie Question.
Reinder Verlinde <rein  2008-06-11 23:14:31 
Re: Cocoa Newbie Question.
Dave Seaman <dseaman@[  2008-06-11 22:37:00 
Re: Cocoa Newbie Question.
le chiffre <oraclmaste  2008-06-12 23:41:20 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-13 10:54:13 
Re: Cocoa Newbie Question.
Jim <jim@[EMAIL PROTEC  2008-06-13 16:04:43 
Re: Cocoa Newbie Question.
Ben Artin <macdev@[EMA  2008-06-13 08:14:16 
Re: Cocoa Newbie Question.
Jim <jim@[EMAIL PROTEC  2008-06-13 16:31:50 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-12 23:55:45 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-11 15:35:52 
Re: Cocoa Newbie Question.
Ben Artin <macdev@[EMA  2008-06-11 15:49:53 
Re: Cocoa Newbie Question.
Dave Seaman <dseaman@[  2008-06-12 00:58:51 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-11 19:05:58 
Re: Cocoa Newbie Question.
Dave Seaman <dseaman@[  2008-06-12 02:18:43 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-11 22:00:09 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-11 22:05:19 
Re: Cocoa Newbie Question.
Dave Seaman <dseaman@[  2008-06-12 12:24:39 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-11 22:08:58 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-12 09:07:43 
Re: Cocoa Newbie Question.
Dave Seaman <dseaman@[  2008-06-12 16:32:15 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-12 13:11:55 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-12 09:52:06 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-12 13:19:58 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-12 10:31:23 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-12 15:06:29 
Re: Cocoa Newbie Question.
Chris Hanson <cmh@[EMA  2008-06-15 16:35:00 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-12 10:34:23 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-12 15:14:39 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-12 12:31:08 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-12 16:30:16 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-12 13:50:06 
Re: Cocoa Newbie Question.
jim@[EMAIL PROTECTED] (j  2008-06-13 06:15:18 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-13 10:52:57 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-13 11:08:59 
Re: Cocoa Newbie Question.
piscesboy <oraclmaster  2008-06-15 16:58:27 
Re: Cocoa Newbie Question.
jim@[EMAIL PROTECTED] (j  2008-06-16 08:33:05 
Re: Cocoa Newbie Question.
Gregory Weston <uce@[E  2008-06-16 08:58:21 
Re: Cocoa Newbie Question.
jim@[EMAIL PROTECTED] (j  2008-06-16 15:23:01 
Re: Cocoa Newbie Question.
glenn andreas <gandrea  2008-06-16 13:56:37 
Re: Cocoa Newbie Question.
Steven Fisher <sdfishe  2008-06-20 13:42:49 
Re: Cocoa Newbie Question.
Steven Fisher <sdfishe  2008-06-20 13:48:07 
Re: Cocoa Newbie Question.
"P. Sture" <  2008-06-22 11:24:00 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Dec 5 11:09:28 CST 2008.