Компиляция C-программ с заголовками GLUT для Windows (в Linux) - PullRequest
2 голосов
/ 19 января 2012

В настоящее время я могу скомпилировать программы на C с stdio.h и тому подобное для Windows с помощью команды i586-mingw32msvc-gcc, однако я не могу сделать это для программы GLUT. При компиляции для Linux я использую:

gcc main.c -lglut -lGLU

(я знаю, плохая практика, как это происходит с a.out)

Тем не менее, я не уверен, как я мог бы сделать это для Windows, используя mingw32. Когда я бегу

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 Ответ

1 голос
/ 20 января 2012

По сути, эта ошибка говорит вам, что ваш MinGW GCC не находит требуемые заголовки. Это потому, что вы выполняете кросс-компиляцию для другой ОС, а заголовочные файлы могут содержать специфические для ОС вещи. К сожалению, OpenGL является одним из них. Поэтому вы должны установить необходимые библиотеки и в версии для Windows.

Однако вы не должны просто загружать некоторые предварительно скомпилированные двоичные файлы из Интернета; вам нужны библиотеки, соответствующие MinGW. Конечно, вы можете установить встроенные библиотеки MinGW, которые будут работать. Однако я предлагаю нечто иное: кросс-компиляция и локальная установка всех необходимых вам библиотек в вашей среде MinGW. Вы делаете это, передавая правильный компилятор, компоновщик и префиксы в конфигурацию сборки каждой библиотеки. Например, для autoconf configure (в моей системе)

CC=i686-mingw32-gcc CXX=i686-mingw32-g++ ./configure --prefix=/usr/i686-mingw

make ; make install затем создаст и установит библиотеки и их заголовки в среде MinGW, где вы сможете использовать их как любую другую регулярно установленную библиотеку.

...