There is a problem with the aupvlist.h header file when compiling C++ code. The error in the file results in an error: parse error before '}' message whenever this file is included. This file is included in audiofile.h and therefore affects any files that use this header file and audiofile.h is included in esd.h, which means anything developed using the esound libraries in C++ are also affected. The error results from the extern "C" {} and ifdef construct used in the header file. The closing curly brace is included twice at the end of the file. Removing the second instance of the following: #ifdef __cplusplus } #endif /* __cplusplus */ from the end of the file solves the problem. This error was discovered while attempting to compile the FreeAMP version 1.3.1 player. Here is a simple patch to fix this error. --- /usr/src/redhat/SOURCES/audiofile-0.1.6/libaudiofile/aupvlist.h Mon Feb 22 12:06:08 1999 +++ aupvlist.h Sun Sep 19 15:16:22 1999 @@ -60,8 +60,4 @@ } #endif -#ifdef __cplusplus -} -#endif /* __cplusplus */ #endif /* AUPVLIST_H */
The version of audiofile that comes with RHL 6.1 does not have this problem.