Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ mingw64的当前版本是否与SDL库不兼容?没有';以前没有_C++_Mingw_Sdl_Mingw W64 - Fatal编程技术网

C++ mingw64的当前版本是否与SDL库不兼容?没有';以前没有

C++ mingw64的当前版本是否与SDL库不兼容?没有';以前没有,c++,mingw,sdl,mingw-w64,C++,Mingw,Sdl,Mingw W64,我认为最近对mingw64的更新破坏了与SDL库的兼容性,但我不确定 是否有已知的解决方法?恢复到已知的工作版本容易吗?我不经常使用它进行编译,并且对它非常不熟悉 以下是编译器错误: CC src/haptic/windows/SDL_syshaptic.o In file included from src/haptic/windows/SDL_syshaptic.c:34:0: src/haptic/windows/../../joystick/windows/SDL_dxjoystick_

我认为最近对mingw64的更新破坏了与SDL库的兼容性,但我不确定

是否有已知的解决方法?恢复到已知的工作版本容易吗?我不经常使用它进行编译,并且对它非常不熟悉

以下是编译器错误:

CC src/haptic/windows/SDL_syshaptic.o
In file included from src/haptic/windows/SDL_syshaptic.c:34:0:
src/haptic/windows/../../joystick/windows/SDL_dxjoystick_c.h:69:3: error: conflicting types for 'XINPUT_GAMEPAD_EX'
 } XINPUT_GAMEPAD_EX;
   ^~~~~~~~~~~~~~~~~
In file included from src/haptic/windows/../../joystick/windows/SDL_dxjoystick_c.h:42:0,
                 from src/haptic/windows/SDL_syshaptic.c:34:
C:/msys64/mingw64/x86_64-w64-mingw32/include/xinput.h:182:3: note: previous declaration of 'XINPUT_GAMEPAD_EX' was here
 } XINPUT_GAMEPAD_EX, *PXINPUT_GAMEPAD_EX;
   ^~~~~~~~~~~~~~~~~
In file included from src/haptic/windows/SDL_syshaptic.c:34:0:
src/haptic/windows/../../joystick/windows/SDL_dxjoystick_c.h:75:3: error: conflicting types for 'XINPUT_STATE_EX'
 } XINPUT_STATE_EX;
   ^~~~~~~~~~~~~~~
In file included from src/haptic/windows/../../joystick/windows/SDL_dxjoystick_c.h:42:0,
                 from src/haptic/windows/SDL_syshaptic.c:34:
C:/msys64/mingw64/x86_64-w64-mingw32/include/xinput.h:192:3: note: previous declaration of 'XINPUT_STATE_EX' was here
 } XINPUT_STATE_EX, *PXINPUT_STATE_EX;
   ^~~~~~~~~~~~~~~
make[2]: *** [Makefile:168: src/haptic/windows/SDL_syshaptic.o] Error 1
make[2]: Leaving directory '/c/{redacted}/sdl2'
make[1]: *** [Makefile:24: sdl2] Error 2
make[1]: Leaving directory '/c/{redacted}'
make: *** [Makefile:13: all] Error 2

好的,看起来两个文件中的typedef签名完全相同,因此只要您注释掉以下代码:

typedef struct
{
    WORD wButtons;
    BYTE bLeftTrigger;
    BYTE bRightTrigger;
    SHORT sThumbLX;
    SHORT sThumbLY;
    SHORT sThumbRX;
    SHORT sThumbRY;
    DWORD dwPaddingReserved;
} XINPUT_GAMEPAD_EX;

typedef struct
{
    DWORD dwPacketNumber;
    XINPUT_GAMEPAD_EX Gamepad;
} XINPUT_STATE_EX;
在“xinput.h”或“SDL_\u c.h”中,它都允许编译代码

这显然只是一个临时措施,我认为SDL库代码可能需要更新以保持与最新mingw代码的兼容性