【发布时间】:2016-02-29 09:51:04
【问题描述】:
我正在尝试编译一个使用 SDL 进行上下文创建和图像加载的 OpenGL 程序。当我在 Linux 上本地编译它时,它编译并运行没有错误。我已经在 /opt/mxe 中安装了 MXE,并检查了 SDL2 目录(包含标头)在 /opt/mxe/usr/i686-w64-mingw32.static/include/ 中,而相应的库(libSDL.a 等)在 /opt/mxe/usr/i686-w64-mingw32.static/lib/ 中。
包含的头文件是<SDL2/SDL.h>和<SDL2/SDL_image.h>
我正在尝试使用
编译上述程序i686-w64-mingw32.static-gcc 5_transformation.c -I/opt/mxe/usr/i686-w64-mingw32.static/include -L/opt/mxe/usr/i686-w64-mingw32.static/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lGLEW -lopengl32 -lm -mwindows
但是,它给出了多个未定义的引用错误:[http://pastebin.com/JaadTNnv
]1
其中许多错误似乎与 Direct3D 等有关,我没有使用(但 SDL2 可能在内部使用)。我也必须链接到他们吗?我这样做对吗? (MXE页面好像没有详细的说明)。
PS。这个问题或其变体似乎在互联网上很受欢迎。但是,我已经按照他们的指示进行了操作。我的主函数定义为int main(int argc, char *argv[]),我正在链接-lmingw32、-lSDL2main 和-mwindows,我确保GCC 参数中的路径是正确的,我尝试输入i686-w64-mingw32.static-sdl-config --cflags --libs 和i686-w64-mingw32.static-pkg-config SDL_image --cflags --libs
在参数中而不是显式链接(这只是为 SDL_GL_CreateContext 和 IMG_Load 等 SDL 函数提供了未定义的引用,并表示 Package SDL_image was not found in the pkg-config search path.)。
【问题讨论】:
标签: c mingw cross-compiling sdl-2 mxe