The gdbm package is not necessarily set up for use with C++. When you
name a souce file with the .cpp extension, it automatically goes into
g++ mode, which causes cpp to include a bunch of other header files
(worse, C++ has a keyword called "delete").
Both of the following compile:
1) rename main.cpp to main.c, compile as before ('gcc -o -c main.o
main.c')
2) modify the file as follows:
extern "C" {
#define delete dbm_delete
#include <dbm.h>
#undef delete
}
int main (void)
{
return 0;
}
Of course, for #2, you'd have to explicitly call "dbm_delete" in your
application code when you want to remove a key from the dbm database,
and use the "delete" keyword when you want to free an unused object.
(You can't use the #define hack in your application code, or you'll
conflate those two operations)
--Chuck
Travis Smith wrote:
>
> Using experimental packages of gcc, mingw, w32, cygwin.
>
> <dbm.h:85>
>
> extern GDBM_EXPORT(int, delete) ();
>
> </dbm.h>
>
> Which after looking at the top defines into:
> GDBM_IMPEXP int GDBM_API delete ();
> which goes to
> __declspec(dllexport) int __cdecl delete ();
>
> which is pulling delete from a dll as far as I know. (I haven't worked with
> dlls too much).
>
> There's a parse error on that line. I'm done, I don't know what's up.
>
> <log>
>
> ~/src $ cat main.cpp
> #include <dbm.h>
>
> int main ( void )
> {
> return 0;
> }
> ~/src $ make
> gcc -c -o main.o main.cpp
> In file included from main.cpp:1:
> /usr/include/dbm.h:85: parse error before `delete'
> make: *** [main.o] Error 1
> ~/src $
>
> </log>
>
> ~Travis Smith
> IT Professional
> [EMAIL PROTECTED]
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple
--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple