"In C, the default storage class of a non-local c o n s t is extern  
and in C++ it is static."
(the quote is from: http://www.research.att.com/~bs/examples_short.pdf)
My guess is that your "other" application may have used C++.

Therefore when you declare a const variable in a header in C you  
create storage in each compilation unit (.m or .c file) that you  
include the header in.
Multiple storage for the same name => duplicate symbols linker error.

You could possibly simply prefix your const declaration with "static"  
as in "static const unsigned x = 123;". THis still creates storage,  
and if you want compile time only constants, then you may consider  
staying with define or using a C++ compiler.

Jesper

On Sep 21, 2009, at 1:19 PM, Frederick C. Lee wrote:

> I'm trying to replace #define directives with c datatype  
> directives.Example:
>
> (1) #define x 123
>
> versus...
>
> (2) const unsigned x = 123;
>
> I place this at the top of the .h (or .m) file, outside of any class  
> or
> method as stand alone.
>
> However, every time I try to use the (2) declaration (within a .h  
> file) the
> linker gives the error: 'duplicate symbol _x in ....'
>
> I tried placing the (2) declaration at the top of a .m or .c file,  
> but I get
> the same linker error.
>
> I've declared global constants in another application without a  
> problem.
>
> I've checked the compiler type within the build: gcc 4.2
>
> What am I doing wrong?
> _______________________________________________
>
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/jsbache%40adobe.com
>
> This email sent to jsba...@adobe.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to