交叉编译程序找不到SDL2标头

时间:2015-06-27 05:56:14

标签: c++ sdl cross-compiling autotools mxe

我正在c++开展一个项目,该项目使用autotools轻松进行交叉编译。我在我的系统上sudo make install'd MXE。只使用./configure,然后使用g++,事情就会顺利进行。但是,使用./configure --host=i686-w64-mingw32,我遇到了这个错误:

In file included from Game.cpp:1:0:
Game.hpp:4:22: fatal error: SDL2/SDL.h: No such file or directory
#include <SDL2/SDL.h>

整天在谷歌周围钓鱼后,我似乎无法找到原因。我知道在Win上编译时(目前在Ubuntu 15.04上),标题的名称因SDL而有所不同,但根据我的理解,我仍在使用Unix编译器。我是否需要为Windows提供单独的源,使用不同的包含?我监视mxe安装是否有错误并且没有收到任何错误,所以我无法想到这就是问题所在。

如果需要,我可以提供更完整的环境图片,但我相信这可能是操作系统特定的错误/警告。

1 个答案:

答案 0 :(得分:0)

SDL2标题应包含如下:

#include <SDL.h>

#include <SDL2/SDL.h>

为什么?

因为当您运行sdl2-config --cflags时,其输出的路径类似于此include/SDL2,如果您对其执行ls,则会SDL.h而不是SDL2/SDL.h