Ошибка ссылки программы GLUT

Я хочу скомпилировать программу GLUT

#include <GL/glut.h>

int main(int argc, char **argv) {

// init GLUT and create Window
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("Lighthouse3D- GLUT Tutorial");

return 1;

}

Команда компиляции и компоновки:

gcc -o main.exe main.c -lglut32

Результат:

main.o:main.c:(.text.startup+0x1c): undefined reference to `glutInit'
main.o:main.c:(.text.startup+0x28): undefined reference to `glutInitDisplayMode'
main.o:main.c:(.text.startup+0x3c): undefined reference to `glutInitWindowPosition'
main.o:main.c:(.text.startup+0x50): undefined reference to `glutInitWindowSize'
main.o:main.c:(.text.startup+0x5c): undefined reference to `glutCreateWindow'
collect2: ld returned 1 exit status

Фактический lib-файл glut (3.7.6, называемый glut32.lib) находится в папке lib mingw, а включаемый файл — в include / GL.

Что делать сейчас?

2

Решение

Попробуйте это с libglut.a а также libglut32.a вместо glut32.lib, Для компиляции программ перенасыщения с помощью minGW.

Do GLUT для Win32 — это порт Windows оригинальной библиотеки GLUT. Он больше не поддерживается и не поддерживается. Пакет MinGW «w32api» уже поставляется с двумя библиотеками импорта GLUT, «Libglut.a» а также «Libglut32.a», но не поставляется с заголовочным файлом перенасыщения.

Если вы когда-либо загружали заголовок GLUT из Интернета и пытались связать приложение с какой-либо из этих библиотек импорта, вы, вероятно, видели бы, что оно перестало работать с различными неопределенными ссылками.

Настройка GLUT для Win32 с помощью MinGW Ищу Setting Up GLUT for Win32 With MinGW

Если вы хотите иметь свою собственную «сборку» из libglut32.a и glu32.dll.

Добавьте следующие строки в файл / GL / glut.h, начиная со строки 12:

 #ifdef __MINGW32__
#define APIENTRY __stdcall
#define CALLBACK __stdcall
#endif

Закомментируйте строку 21 в lib / glut / win32_winproc.c, чтобы она выглядела так:

//#include <crtdbg.h>

Makefile строки 5 заменить:

-включить-авто-импорт с —включить-авто-импорт

запустить сделать


Попробовал это с файлом example.c из руководства по ссылке Setting Up GLUT for Win32 With MinGW,

С готовые библиотеки и Скомпилированные библиотеки. Работает оба.

ниже результат.

введите описание изображения здесь

Пример применения GLUT

example.c по ссылке выше Setting Up GLUT for Win32 With MinGW,

#include <stdlib.h>
#include <GL/glut.h>

void keyboard(unsigned char key, int x, int y);
void display(void);int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutCreateWindow("GLUT Test");
glutKeyboardFunc(&keyboard);
glutDisplayFunc(&display);
glutMainLoop();

return EXIT_SUCCESS;
}void keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case '\x1B':
exit(EXIT_SUCCESS);
break;
}
}void display()
{
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0f, 0.0f, 0.0f);

glBegin(GL_POLYGON);
glVertex2f(-0.5f, -0.5f);
glVertex2f( 0.5f, -0.5f);
glVertex2f( 0.5f,  0.5f);
glVertex2f(-0.5f,  0.5f);
glEnd();

glFlush();
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]