使用mingw编译SFML时未声明PTITLEBARINFO

时间:2017-09-25 00:37:12

标签: windows cmake mingw sfml

当我尝试使用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)

1 个答案:

答案 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或执行其他操作。