From: Alexandre Naaman (naaman++at++laplace.engr.sgi.com)
Date: 03/13/2003 18:15:33
> I had occasion to rebuild the libpfdu-util dll on Windows. My rebuilt
> dll caused problems when my program called pfLoadAppearance(). I
> discovered that pfLoadAppearance.obj had been left out of the makefile.
> I added it into the makefile and found that the line:
>
> #include <Performer/pr/pfStruct.h>
>
> prevented compilation. I discovered I could remove this line and then
> get the library to compile. Furthermore, my program now worked.
Hi Karen,
First off, you're correct, pfdLoadAppearance.C is missing from the
makefile. This happens because we have two different set of makefiles; one
for internal use (gmake based on win32) and another set that use
Microsoft's nmake, which is what we ship. Unfortunately it looks like
although this file was a part of the internal libpfdu-util build, it
didn't make it into the user side build.
Then there's the second problem with the pfStruct.h header file. This is
a C++ header file and shouldn't be included in C code. And this is where
things start getting messy ... Microsoft doesn't care about case
sensitivity so it thinks that a .C file is the same as a .c file and hence
compile this file as if it was a C file, not a C++ file. What we need to
do is change the name of the .C file to .cxx when we ship it under windows
(and is what we do for many files in the libpfutil directory.) Your
work-around also works, surprisingly enough ('cause I wouldn't expect the
compiler to do well with that snippet of code which looks like it's C++ to
me!)
So that's that ... we'll fix all of this with the next minor release.
Thanks for pointing it out to us!
A+,
Alex.
This archive was generated by hypermail 2b29 : Thu Mar 13 2003 - 18:15:44 PST