wxWidgets-3.0.3 unter CygWin bauen
-
Hallo zusammen,
zur Zeit versuche ich wxWidgets-3.0.3 unter Cygwin64 zu bauen, leider erfolglos. Configure geht problemlos, beim eigentlichen Build (make) gibt es dann Probleme.
$ ../configure --with-msw --disable-debug --disable-shared --enable-stl --disable-xlocale
Beim File ../src/msw/volume.cpp kommen diverse Fehler:
/cygdrive/c/opt/wxWidgets-3.0.3/build-release/bk-deps g++ -c -o baselib_volume.o -D__WXMSW__ -DWXBUILDING -I/cygdrive/c/opt/wxWidgets-3.0.3/build-release/src/tiff/libtiff -I../src/tiff/libtiff -I../src/jpeg -I../src/png -I../src/regex -DwxUSE_GUI=0 -DwxUSE_BASE=1 -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=0 -I/cygdrive/c/opt/wxWidgets-3.0.3/build-release/lib/wx/include/msw-unicode-static-3.0 -I../include -O2 -fno-strict-aliasing ../src/msw/volume.cpp ../src/msw/volume.cpp: In statischer Elementfunktion »static wxArrayString wxFSVolumeBase::GetVolumes(int, int)«: ../src/msw/volume.cpp:398:49: Fehler: keine passende Funktion für Aufruf von »_InterlockedExchange(long int*, int)« ::InterlockedExchange(&s_cancelSearch, FALSE); // reset ^ In file included from /usr/include/w32api/windows.h:70:0, from ../include/wx/msw/wrapwin.h:65, from ../src/msw/volume.cpp:45: /usr/include/w32api/winbase.h:2973:29: Anmerkung: candidate: long unsigned int _InterlockedExchange(volatile long unsigned int*, long unsigned int) <nahe Übereinstimmung> FORCEINLINE unsigned long InterlockedExchange (unsigned long volatile *Target, unsigned long Value) { ^
Hat jemand eine Idee?
Vielen Dank,
M.
-
Hier nochml die komplette Fehlermeldung:
/cygdrive/c/opt/wxWidgets-3.0.3/build-release/bk-deps g++ -c -o baselib_volume.o -D__WXMSW__ -DWXBUILDING -I/cygdrive/c/opt/wxWidgets-3.0.3/build-release/src/tiff/libtiff -I../src/tiff/libtiff -I../src/jpeg -I../src/png -I../src/regex -DwxUSE_GUI=0 -DwxUSE_BASE=1 -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -D_FILE_OFFSET_BITS=64 -DwxDEBUG_LEVEL=0 -I/cygdrive/c/opt/wxWidgets-3.0.3/build-release/lib/wx/include/msw-unicode-static-3.0 -I../include -O2 -fno-strict-aliasing ../src/msw/volume.cpp ../src/msw/volume.cpp: In statischer Elementfunktion »static wxArrayString wxFSVolumeBase::GetVolumes(int, int)«: ../src/msw/volume.cpp:398:49: Fehler: keine passende Funktion für Aufruf von »_InterlockedExchange(long int*, int)« ::InterlockedExchange(&s_cancelSearch, FALSE); // reset ^ In file included from /usr/include/w32api/windows.h:70:0, from ../include/wx/msw/wrapwin.h:65, from ../src/msw/volume.cpp:45: /usr/include/w32api/winbase.h:2973:29: Anmerkung: candidate: long unsigned int _InterlockedExchange(volatile long unsigned int*, long unsigned int) <nahe Übereinstimmung> FORCEINLINE unsigned long InterlockedExchange (unsigned long volatile *Target, unsigned long Value) { ^ /usr/include/w32api/winbase.h:2973:29: Anmerkung: Umwandlung von Argument 1 wäre unzulässig: ../src/msw/volume.cpp:398:27: Fehler: ungültige Umwandlung von »long int*« in »volatile long unsigned int*« [-fpermissive] ::InterlockedExchange(&s_cancelSearch, FALSE); // reset ^~~~~~~~~~~~~~~ In file included from /usr/include/w32api/windows.h:70:0, from ../include/wx/msw/wrapwin.h:65, from ../src/msw/volume.cpp:45: /usr/include/w32api/winbase.h:2982:32: Anmerkung: candidate: long long unsigned int _InterlockedExchange(volatile long long unsigned int*, long long unsigned int) <nahe Übereinstimmung> FORCEINLINE unsigned __int64 InterlockedExchange (unsigned __int64 volatile *Target, unsigned __int64 Value) { ^ /usr/include/w32api/winbase.h:2982:32: Anmerkung: Umwandlung von Argument 1 wäre unzulässig: ../src/msw/volume.cpp:398:27: Fehler: ungültige Umwandlung von »long int*« in »volatile long long unsigned int*« [-fpermissive] ::InterlockedExchange(&s_cancelSearch, FALSE); // reset ^~~~~~~~~~~~~~~ ../src/msw/volume.cpp: In statischer Elementfunktion »static void wxFSVolumeBase::CancelSearch()«: ../src/msw/volume.cpp:469:48: Fehler: keine passende Funktion für Aufruf von »_InterlockedExchange(long int*, int)« ::InterlockedExchange(&s_cancelSearch, TRUE); ^ In file included from /usr/include/w32api/windows.h:70:0, from ../include/wx/msw/wrapwin.h:65, from ../src/msw/volume.cpp:45: /usr/include/w32api/winbase.h:2973:29: Anmerkung: candidate: long unsigned int _InterlockedExchange(volatile long unsigned int*, long unsigned int) <nahe Übereinstimmung> FORCEINLINE unsigned long InterlockedExchange (unsigned long volatile *Target, unsigned long Value) { ^ /usr/include/w32api/winbase.h:2973:29: Anmerkung: Umwandlung von Argument 1 wäre unzulässig: ../src/msw/volume.cpp:469:27: Fehler: ungültige Umwandlung von »long int*« in »volatile long unsigned int*« [-fpermissive] ::InterlockedExchange(&s_cancelSearch, TRUE); ^~~~~~~~~~~~~~~ In file included from /usr/include/w32api/windows.h:70:0, from ../include/wx/msw/wrapwin.h:65, from ../src/msw/volume.cpp:45: /usr/include/w32api/winbase.h:2982:32: Anmerkung: candidate: long long unsigned int _InterlockedExchange(volatile long long unsigned int*, long long unsigned int) <nahe Übereinstimmung> FORCEINLINE unsigned __int64 InterlockedExchange (unsigned __int64 volatile *Target, unsigned __int64 Value) { ^ /usr/include/w32api/winbase.h:2982:32: Anmerkung: Umwandlung von Argument 1 wäre unzulässig: ../src/msw/volume.cpp:469:27: Fehler: ungültige Umwandlung von »long int*« in »volatile long long unsigned int*« [-fpermissive] ::InterlockedExchange(&s_cancelSearch, TRUE); ^~~~~~~~~~~~~~~ make: *** [Makefile:29589: baselib_volume.o] Fehler 1
-
Das Problem ist (oder war) bekannt. Google nach "cygwin 64 InterlockedExchange"
Die Bug Reports sind allerdings schon mindestens 3-4 Jahre alt. Vielleicht hilft Dir eine aktuellere Cygwin Version.