Help me to resolve undefined reference

Francois Gouget fgouget at
Thu Mar 28 20:06:08 CST 2002

On Thu, 28 Mar 2002, Ku Cheng wrote:

> Andriy,
> After putting the prototype of DisconnectNamedPipe( ) in the winbase.h
> file, finally my program can link successfully. Previously I put "extern
> bool DsiconnnecrNamedPipe ..." in my source file to avoid compilation
> error. But it still failed at linking phase. What is the difference of
> putting the declaration in winbase.h and in my local file? How is the
> winbase.h  used in "winemaker" and "configure"? Is there any documentation
> explaining this?

   This is a regular C vs. C++ issue, not specific to Winelib. When you
put it in your source file you were probably missing the "C"  in extern
"C" ... In winebase.h all function declarations are enclosed with:

#ifdef __cplusplus
extern "C" {
#ifdef __cplusplus

  So because "C" was missing, the compiler assumed it was a C++ function
and mangled the name.  Then at link time there was no function by that
(mangled) name.

Francois Gouget         fgouget at
        War doesn't determine who's right.  War determines who's left.

More information about the wine-devel mailing list