我目前可以使用stdio.h
编译C程序,例如使用命令i586-mingw32msvc-gcc
编译Windows,但是我不能为GLUT程序执行此操作。在为Linux编译时,我使用:
gcc main.c -lglut -lGLU
(我知道,a.out出来的做法很糟糕)
但我不确定如何使用mingw32为Windows做这件事。我跑的时候
i586-mingw32msvc -lglut -lGLU
它返回:
test.c:3:21: error: GL/glut.h: No such file or directory
包含的头文件是:
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
我不确定如何使它能够编译。有什么想法吗?
答案 0 :(得分:1)
基本上该错误告诉您,您的MinGW GCC未找到所需的标头。也就是说,因为您正在交叉编译到另一个操作系统,并且头文件可能包含特定于操作系统的内容。不幸的是,OpenGL就是其中之一。因此,您还必须在Windows版本中安装所需的库。
但是,您不应该只是从网上下载一些预编译的二进制文件;你需要匹配MinGW的库。您当然可以安装MinGW构建的库,这将是有效的。但是我建议一些不同的东西:Crosscompile并在你自己的MinGW环境中本地安装你需要的所有库。您可以通过将正确的编译器,链接器和前缀传递到每个库的构建配置中来执行此操作。例如,对于基于autoconf的configure
(在我的系统上)
CC=i686-mingw32-gcc CXX=i686-mingw32-g++ ./configure --prefix=/usr/i686-mingw
make ; make install
然后将在MinGW环境中构建和安装库及其标题,您可以将它们用作任何其他常规安装的库。