使用适用于Windows的GLUT标头编译C程序(在Linux中)

时间:2012-01-19 18:35:01

标签: c linux opengl glut cross-compiling

我目前可以使用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>

我不确定如何使它能够编译。有什么想法吗?

1 个答案:

答案 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环境中构建和安装库及其标题,您可以将它们用作任何其他常规安装的库。