Re: [edk2] Buidl Error C2496 from AutoGen.c

Subject: Re: [edk2] Buidl Error C2496 from AutoGen.c

From: Andrew Fish <afish@apple.com>

To: galla rao <gallagnv.rao@gmail.com>

Date: 2013-07-11 06:12:45


On Jul 10, 2013, at 10:02 PM, galla rao <gallagnv.rao@gmail.com> wrote:

Thanks Feng
 
There is some piece of code where variables are declared as
and when needed, i was porting this to UDK compatible
 

This is a C99 thing (and C++). You might see if VC++ 20xx has support for this C99 feature via a flag?Turning on C++ mode for this is kind of overkill....

GCC defaults to C90, but with a subset of C99 extensions, including the one you mentioned. 

Thanks,

Andrew Fish

The earlier code was on EDK which used /TP option.
so the same i am trying to continue on UDK as well
 
Is there a way to overcome this behaviour with /TP option
Alternate solution is to remove /TP and declare the variables at the beginning of the function (or) open a block to declare variables and run the code, it does work


 
On Thu, Jul 11, 2013 at 7:55 AM, Tian, Feng <feng.tian@intel.com> wrote:

Why are you using /TP compiler option? From MSDN, you are trying to treat AutoGen.c as C++ file?

 

/TC and /TP are "global" variants of /Tc and /Tp. They specify to the compiler to treat all files named on the command line as C source files (/TC) or C++ source files (/TP), without regard to location on the command line in relation to the option.

 

From: galla rao [mailto:gallagnv.rao@gmail.com]
Sent: Wednesday, July 10, 2013 20:49
To: edk2-devel@lists.sourceforge.net
Subject: [edk2] Buidl Error C2496 from AutoGen.c

 

Hello All,

 

I am trying to build a optionrom with UDK2010.SR1.UP1 libraries

with /TP as compiler switch

 

I see error C2496 from AutoGen.c, though i never use these PCD's

when i don't use /TP flag, this error is not seen

 

c:\udk2010.up1\Build\MdeModule\RELEASE_VS2010\X64\MdeModulePkg\Bus\Pci\Sasdriver\SasDriver\DEBUG\AutoGen.c(65) : error C2496: '_gPcd_FixedAtBuild_PcdMaximumLinkedListLength' : 'selectany' can only be applied to data items with external linkage
c:\udk2010.up1\Build\MdeModule\RELEASE_VS2010\X64\MdeModulePkg\Bus\Pci\Sasdriver\SasDriver\DEBUG\AutoGen.c(72) : error C2496: '_gPcd_FixedAtBuild_PcdMaximumAsciiStringLength' : 'selectany' can only be applied to data items with external linkage
c:\udk2010.up1\Build\MdeModule\RELEASE_VS2010\X64\MdeModulePkg\Bus\Pci\Sasdriver\SasDriver\DEBUG\AutoGen.c(79) : error C2496: '_gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength' : 'selectany' can only be applied to data items with external linkage

I am using /TP(for convenience of declaring varaibles) and also some extern "C" code

 

Please help me know how to overcome this error

 

 

Thanks

Ranga


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel