This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Jim, > I am trying to compile some old C++ files of ours that include ldm.h. It > used to work with ldm-5.2.2 and gcc-3.2.3, but I am trying to upgrade to > ldm-6.6.5 and gcc-4.1.2. Here are the errors I am getting: > > /usr/local/ldm/include/ldm.h:386: error: declaration of 'prod_class* > feedpar::prod_class' > /usr/local/ldm/include/ldm.h:372: error: changes meaning of 'prod_class' > from 'typedef struct prod_class prod_class' > /usr/local/ldm/include/ldm.h:520: error: declaration of 'prod_class* > fornme_reply_t::<anonymous union>::prod_class' > /usr/local/ldm/include/ldm.h:372: error: changes meaning of 'prod_class' > from 'typedef struct prod_class prod_class' > make[3]: *** [bddsReader.o] Error 1 > > I would greatly appreciate any suggestions you might have. I found this in the CHANGE_LOG file for version 6.7.0: Added the typedef "prod_class_t" to the header-file "ldm.h" and changed all code and documentation to use it instead of the typedef "prod_class". This was done to allow "ldm.h" to be processed by a C++ compiler. The typedef "prod_class" still exists for backward compatibility -- though it is no longer used in the code. Both C and C++ programmers should now use "prod_class_t" instead of "prod_class". I recommend getting the latest version of the LDM and changing all your uses of "prod_class" to "prod_class_t". > Thanks, > Jim Regards, Steve Emmerson Ticket Details =================== Ticket ID: PNF-494350 Department: Support LDM Priority: Normal Status: Closed