当我尝试使用mingw编译sfml-2.4.2库时,我收到以下错误:
In file included from c:\mingw\include\windows.h:48:0,
from C:/Users/LENOVO/programming/SFML/SFML-2.4.1/src/SFML/Window/Win32/JoystickImpl.hpp:42,
from C:/Users/LENOVO/programming/SFML/SFML-2.4.1/src/SFML/Window/JoystickImpl.hpp:83,
from C:/Users/LENOVO/programming/SFML/SFML-2.4.1/src/SFML/Window/JoystickManager.hpp:32,
from C:\Users\LENOVO\programming\SFML\SFML-2.4.1\src\SFML\Window\Joystick.cpp:29:
c:\mingw\include\winuser.h:3920:47: error: 'PTITLEBARINFO' has not been declared
WINUSERAPI BOOL WINAPI GetTitleBarInfo (HWND, PTITLEBARINFO);
^~~~~~~~~~~~~
src\SFML\Window\CMakeFiles\sfml-window.dir\build.make:137: recipe for target 'src/SFML/Window/CMakeFiles/sfml-window.dir/Joystick.cpp.obj' failed
mingw32-make[2]: *** [src/SFML/Window/CMakeFiles/sfml-window.dir/Joystick.cpp.obj] Error 1
CMakeFiles\Makefile2:227: recipe for target 'src/SFML/Window/CMakeFiles/sfml-window.dir/all' failed
mingw32-make[1]: *** [src/SFML/Window/CMakeFiles/sfml-window.dir/all] Error 2
Makefile:128: recipe for target 'all' failed
mingw32-make: *** [all] Error 2
我在Windows上工作。我通过MinGW Installation Manager安装了mingw。我使用Cmake-3.9.3获取makefile等。但是当我在SFML-2.4.2文件夹中运行mingw32-make
时,我收到此错误。我在C:\ MinGW中安装了MinGW。 (为此我使用了最新的mingw-get版本0.6.2-beta)
答案 0 :(得分:1)
目标版本的定义不起作用。
由于包含文件损坏而发生此错误(在我的情况下):
C:\MinGW\include\winuser.h
在此文件中,{44}在第4417行声明
但是在第3920行的PTITLEBARINFO
声明中提到了它。
还有另一个
GetTitleBarInfo
winuser.h
这似乎是正确的。
此外, C:\MinGW\msys\1.0\include\w32api\winuser.h
中的winuser.h
位于
Visual-C++
是对的。
因此,您需要修复损坏的C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winuser.h
,更改winuser.h
或执行其他操作。