wineg++ compile error

Stefan Dösinger stefan at codeweavers.com
Mon Jan 19 11:42:21 CST 2009


It looks like you include two headers that define the same type in a
differnet way. Ie, a typdef from a Linux header collides with a windows
typedef from a Wine header.

> -----Original Message-----
> From: wine-devel-bounces at winehq.org [mailto:wine-devel-
> bounces at winehq.org] On Behalf Of Rino Farina
> Sent: Monday, January 19, 2009 3:46 PM
> To: wine-devel at winehq.org
> Subject: wineg++ compile error
> 
> Hi All,
> 
> I'm completely new to wine, and am having trouble compiling code
> before it ever gets to the linker. Can anyone point me in the right
> direction?
> 
> BaseGameEntity.h:
> 
> #include <string>
> 
> class BaseGameEntity
> {
> private:
>   int          m_ID;
>   static int  m_iNextValidID;
> 
>   void SetID(int val);
> 
> public:
>   BaseGameEntity(int id)
>   {
>     SetID(id);
>   }
> 
>   virtual ~BaseGameEntity(){}
> 
>   virtual void  Update()=0;
>   virtual bool  HandleMessage(const long& msg)=0;
> 
>   int           ID()const{return m_ID;}
> };
> 
> BaseGameEntity.cpp:
> 
> #include "BaseGameEntity.h"
> #include <cassert>
> 
> int BaseGameEntity::m_iNextValidID = 0;
> void BaseGameEntity::SetID(int val)
> {
>   assert ( (val >= m_iNextValidID) && "<BaseGameEntity::SetID>: invalid
> ID");
> 
>   m_ID = val;
> 
>   m_iNextValidID = m_ID + 1;
> }
> 
> 
> Console:
> 
> make all
> wineg++ -c  -mno-cygwin  -I.  -o BaseGameEntity.o BaseGameEntity.cpp
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cwchar:52,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h:47,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h:47,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/string:47,
>                  from BaseGameEntity.h:12,
>                  from BaseGameEntity.cpp:1:
> /usr/include/wchar.h:62: error: conflicting declaration 'typedef
> unsigned int wint_t'
> /usr/include/wine/msvcrt/stdio.h:109: error: 'wint_t' has a previous
> declaration as 'typedef short unsigned int wint_t'
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cwchar:52,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h:47,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h:47,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/string:47,
>                  from BaseGameEntity.h:12,
>                  from BaseGameEntity.cpp:1:
> /usr/include/wchar.h:527: error: expected initializer before '*' token
> /usr/include/wchar.h:534: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:534: error: '__fp' was not declared in this scope
> /usr/include/wchar.h:534: error: expected primary-expression before
> 'int'
> /usr/include/wchar.h:534: error: initializer expression list treated
> as compound expression
> /usr/include/wchar.h:534: error: expected ',' or ';' before 'throw'
> /usr/include/wchar.h:541: error: 'int fwprintf' redeclared as
> different kind of symbol
> /usr/include/wine/msvcrt/stdio.h:214: error: previous declaration of
> 'int fwprintf(FILE*, const wchar_t*, ...)'
> /usr/include/wchar.h:541: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:541: error: expected primary-expression before
> '__restrict__'
> /usr/include/wchar.h:542: error: expected primary-expression before
> 'const'
> /usr/include/wchar.h:542: error: expected primary-expression before
> '...' token
> /usr/include/wchar.h:553: error: declaration of C function 'int
> swprintf(wchar_t*, size_t, const wchar_t*, ...)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:223: error: previous declaration 'int
> swprintf(wchar_t*, const wchar_t*, ...)' here
> /usr/include/wchar.h:559: error: 'int vfwprintf' redeclared as
> different kind of symbol
> /usr/include/wine/msvcrt/stdio.h:226: error: previous declaration of
> 'int vfwprintf(FILE*, const wchar_t*, char*)'
> /usr/include/wchar.h:559: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:559: error: expected primary-expression before
> '__restrict__'
> /usr/include/wchar.h:560: error: expected primary-expression before
> 'const'
> /usr/include/wchar.h:561: error: expected primary-expression before
> '__arg'
> /usr/include/wchar.h:575: error: declaration of C function 'int
> vswprintf(wchar_t*, size_t, const wchar_t*, char*)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:227: error: previous declaration 'int
> vswprintf(wchar_t*, const wchar_t*, char*)' here
> /usr/include/wchar.h:582: error: 'int fwscanf' redeclared as different
> kind of symbol
> /usr/include/wine/msvcrt/stdio.h:216: error: previous declaration of
> 'int fwscanf(FILE*, const wchar_t*, ...)'
> /usr/include/wchar.h:582: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:582: error: expected primary-expression before
> '__restrict__'
> /usr/include/wchar.h:583: error: expected primary-expression before
> 'const'
> /usr/include/wchar.h:583: error: expected primary-expression before
> '...' token
> /usr/include/wchar.h:636: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:636: error: expected primary-expression before
> '__restrict__'
> /usr/include/wchar.h:637: error: expected primary-expression before
> 'const'
> /usr/include/wchar.h:638: error: expected primary-expression before
> '__arg'
> /usr/include/wchar.h:638: error: initializer expression list treated
> as compound expression
> /usr/include/wchar.h:692: error: 'wint_t fgetwc' redeclared as
> different kind of symbol
> /usr/include/wine/msvcrt/stdio.h:210: error: previous declaration of
> 'wint_t fgetwc(FILE*)'
> /usr/include/wchar.h:692: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:692: error: '__stream' was not declared in this
> scope
> /usr/include/wchar.h:693: error: 'wint_t getwc' redeclared as
> different kind of symbol
> /usr/include/wine/msvcrt/stdio.h:217: error: previous declaration of
> 'wint_t getwc(FILE*)'
> /usr/include/wchar.h:693: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:693: error: '__stream' was not declared in this
> scope
> /usr/include/wchar.h:706: error: '__FILE' has not been declared
> /usr/include/wchar.h:706: error: declaration of C function 'wint_t
> fputwc(wchar_t, int*)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:212: error: previous declaration
> 'wint_t fputwc(wint_t, FILE*)' here
> /usr/include/wchar.h:707: error: '__FILE' has not been declared
> /usr/include/wchar.h:707: error: declaration of C function 'wint_t
> putwc(wchar_t, int*)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:220: error: previous declaration
> 'wint_t putwc(wint_t, FILE*)' here
> /usr/include/wchar.h:713: error: declaration of C function 'wint_t
> putwchar(wchar_t)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:221: error: previous declaration
> 'wint_t putwchar(wint_t)' here
> /usr/include/wchar.h:722: error: '__FILE' has not been declared
> /usr/include/wchar.h:722: error: declaration of C function 'wchar_t*
> fgetws(wchar_t*, int, int*)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:211: error: previous declaration
> 'wchar_t* fgetws(wchar_t*, int, FILE*)' here
> /usr/include/wchar.h:729: error: '__FILE' has not been declared
> /usr/include/wchar.h:729: error: declaration of C function 'int
> fputws(const wchar_t*, int*)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:215: error: previous declaration 'int
> fputws(const wchar_t*, FILE*)' here
> /usr/include/wchar.h:736: error: '__FILE' has not been declared
> /usr/include/wchar.h:736: error: declaration of C function 'wint_t
> ungetwc(wint_t, int*)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:225: error: previous declaration
> 'wint_t ungetwc(wint_t, FILE*)' here
> /usr/include/wchar.h:748: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:748: error: '__stream' was not declared in this
> scope
> /usr/include/wchar.h:757: error: '__FILE' was not declared in this
> scope
> /usr/include/wchar.h:757: error: '__stream' was not declared in this
> scope
> /usr/include/wchar.h:765: error: '__FILE' has not been declared
> /usr/include/wchar.h:774: error: '__FILE' has not been declared
> /usr/include/wchar.h:785: error: '__FILE' has not been declared
> /usr/include/wchar.h:794: error: '__FILE' has not been declared
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:50,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h:48,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/string:47,
>                  from BaseGameEntity.h:12,
>                  from BaseGameEntity.cpp:1:
> /usr/include/stdio.h:49: error: conflicting declaration 'typedef
> struct _IO_FILE FILE'
> /usr/include/wine/msvcrt/stdio.h:84: error: 'FILE' has a previous
> declaration as 'typedef struct _iobuf FILE'
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h:48,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/string:47,
>                  from BaseGameEntity.h:12,
>                  from BaseGameEntity.cpp:1:
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:170:
> error: '::snprintf' has not been declared
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:171:
> error: '::vfscanf' has not been declared
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:172:
> error: '::vscanf' has not been declared
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:174:
> error: '::vsscanf' has not been declared
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:181:
> error: '__gnu_cxx::snprintf' has not been declared
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:182:
> error: '__gnu_cxx::vfscanf' has not been declared
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:183:
> error: '__gnu_cxx::vscanf' has not been declared
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:185:
> error: '__gnu_cxx::vsscanf' has not been declared
> In file included from /usr/include/_G_config.h:20,
>                  from /usr/include/libio.h:32,
>                  from /usr/include/stdio.h:75,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:50,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h:49,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ios:48,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ostream:45,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/iostream:45,
>                  from
> /home/rino/Download/Buckland_AISource_070308/EclipseProjects/Common/Mes
> saging/Telegram.h:14,
>                  from BaseGameEntity.h:14,
>                  from BaseGameEntity.cpp:1:
> /usr/include/wine/msvcrt/wchar.h:62: error: conflicting declaration
> 'typedef int mbstate_t'
> /usr/include/wchar.h:101: error: 'mbstate_t' has a previous
> declaration as 'typedef struct __mbstate_t mbstate_t'
> /usr/include/wine/msvcrt/wchar.h:412: error: declaration of C function
> 'wchar_t* wcstok(wchar_t*, const wchar_t*)' conflicts with
> /usr/include/wchar.h:246: error: previous declaration 'wchar_t*
> wcstok(wchar_t*, const wchar_t*, wchar_t**)' here
> /usr/include/wine/msvcrt/wchar.h:425: error: declaration of C function
> 'wchar_t btowc(int)' conflicts with
> /usr/include/wchar.h:300: error: previous declaration 'wint_t
> btowc(int)' here
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:50,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h:49,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ios:48,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ostream:45,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/iostream:45,
>                  from
> /home/rino/Download/Buckland_AISource_070308/EclipseProjects/Common/Mes
> saging/Telegram.h:14,
>                  from BaseGameEntity.h:14,
>                  from BaseGameEntity.cpp:1:
> /usr/include/stdio.h:91: error: conflicting declaration 'typedef
> struct _G_fpos_t fpos_t'
> /usr/include/wine/msvcrt/stdio.h:88: error: 'fpos_t' has a previous
> declaration as 'typedef long long int fpos_t'
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:50,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h:49,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ios:48,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ostream:45,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/iostream:45,
>                  from
> /home/rino/Download/Buckland_AISource_070308/EclipseProjects/Common/Mes
> saging/Telegram.h:14,
>                  from BaseGameEntity.h:14,
>                  from BaseGameEntity.cpp:1:
> /usr/include/stdio.h:145: error: expected `)' before '+' token
> /usr/include/stdio.h:145: error: expected initializer before '+' token
> /usr/include/stdio.h:146: error: expected `)' before '+' token
> /usr/include/stdio.h:146: error: expected initializer before '+' token
> /usr/include/stdio.h:147: error: expected `)' before '+' token
> /usr/include/stdio.h:147: error: expected initializer before '+' token
> /usr/include/wine/msvcrt/stdio.h:246: error: previous declaration of
> 'char* tempnam(const char*, const char*)' with 'C++' linkage
> /usr/include/stdio.h:207: error: conflicts with new declaration with
> 'C' linkage
> /usr/include/wine/msvcrt/stdio.h:240: error: previous declaration of
> 'FILE* fdopen(int, const char*)' with 'C++' linkage
> /usr/include/stdio.h:285: error: conflicts with new declaration with
> 'C' linkage
> /usr/include/wine/msvcrt/stdio.h:251: error: previous declaration of
> 'int vsnprintf(char*, size_t, const char*, char*)' with 'C++' linkage
> /usr/include/stdio.h:369: error: conflicts with new declaration with
> 'C' linkage
> /usr/include/wine/msvcrt/stdio.h:255: error: previous declaration of
> 'int getw(FILE*)' with 'C++' linkage
> /usr/include/stdio.h:590: error: conflicts with new declaration with
> 'C' linkage
> /usr/include/wine/msvcrt/stdio.h:256: error: previous declaration of
> 'int putw(int, FILE*)' with 'C++' linkage
> /usr/include/stdio.h:593: error: conflicts with new declaration with
> 'C' linkage
> /usr/include/stdio.h:774: error: declaration of C function 'int
> fsetpos(FILE*, const fpos_t*)' conflicts with
> /usr/include/wine/msvcrt/stdio.h:166: error: previous declaration 'int
> fsetpos(FILE*, fpos_t*)' here
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cstdio:50,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h:49,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ios:48,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ostream:45,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/iostream:45,
>                  from
> /home/rino/Download/Buckland_AISource_070308/EclipseProjects/Common/Mes
> saging/Telegram.h:14,
>                  from BaseGameEntity.h:14,
>                  from BaseGameEntity.cpp:1:
> /usr/include/wine/msvcrt/stdio.h:242: error: previous declaration of
> 'int fileno(FILE*)' with 'C++' linkage
> /usr/include/stdio.h:829: error: conflicts with new declaration with
> 'C' linkage
> /usr/include/wine/msvcrt/stdio.h:245: error: previous declaration of
> 'FILE* popen(const char*, const char*)' with 'C++' linkage
> /usr/include/stdio.h:844: error: conflicts with new declaration with
> 'C' linkage
> /usr/include/wine/msvcrt/stdio.h:244: error: previous declaration of
> 'int pclose(FILE*)' with 'C++' linkage
> /usr/include/stdio.h:850: error: conflicts with new declaration with
> 'C' linkage
> In file included from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/cwctype:51,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h:46,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h:44,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ios:50,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/ostream:45,
>                  from
> /usr/lib/gcc/i386-redhat-
> linux/4.3.0/../../../../include/c++/4.3.0/iostream:45,
>                  from
> /home/rino/Download/Buckland_AISource_070308/EclipseProjects/Common/Mes
> saging/Telegram.h:14,
>                  from BaseGameEntity.h:14,
>                  from BaseGameEntity.cpp:1:
> /usr/include/wctype.h:53: error: conflicting declaration 'typedef long
> unsigned int wctype_t'
> /usr/include/wine/msvcrt/stdio.h:110: error: 'wctype_t' has a previous
> declaration as 'typedef short unsigned int wctype_t'
> /usr/include/wctype.h:195: error: declaration of C function 'wint_t
> towlower(wint_t)' conflicts with
> /usr/include/wine/msvcrt/wchar.h:255: error: previous declaration
> 'wchar_t towlower(wchar_t)' here
> /usr/include/wctype.h:198: error: declaration of C function 'wint_t
> towupper(wint_t)' conflicts with
> /usr/include/wine/msvcrt/wchar.h:256: error: previous declaration
> 'wchar_t towupper(wchar_t)' here
> winegcc: g++ failed
> make: *** [BaseGameEntity.o] Error 2




More information about the wine-devel mailing list