[netcdf-porting] avoiding MSC_EXTRA definition

Ed Hartnett ed at unidata.ucar.edu
Thu May 1 09:18:01 MDT 2008


dennis neal <neon10 at hotmail.com> writes:

> Hello;
>
> I have been able to write the LinkDef.h header file needed to generate a dictionary using rootcint  (from CERN) in order to create a .so to include in ROOT. When I attempt to run the Ed H. test program I get an error
>
> extern MSC_EXTRA int err.
>
> Reading the netcdf.h header file, it seems that, if one wants a DLL,
> MSC_EXTERN and then EXTERNL are defined. I do NOT want MSC_EXTERN
> defined.
>
> How do I stop that from happening? I tried a #ifndef __GNUC__ macro
> but I need V2 (I eventually want to use AIA ANDI, built on netcdf
> V2) and it appears that some other things depending on EXTERNL being
> defined are needed by all operating systems (warning above the
> CRAYMPP /* */).

Usually this is defined in the config.h file, which is automatically
built by the configure script.

>
> Perhaps this is why Cygwin can not built the c++ interface? (Isnt
> the C++ interface dependent on V2 code?)

Hmm. Cygwin can build the C++ API.

Also the C++ API can be built without the v2 api. With the latest
snapshot, try:
./configure --disable-v2 && make check


> Where is creating a DLL defined? I reran configure with shared
> libraries as NO but still this code keeps being read. Why, using
> gcc, is an MSC variable created? Doesnt MSC mean Microsoft C?

DLL stuff is in the Makefile.am files.

> Any help I can get with this will be greatly appreciated and of
> course acknowledged in the final code.

Did you run the configure script?

Ed

-- 
Ed Hartnett  -- ed at unidata.ucar.edu


More information about the netcdf-porting mailing list