makefile — C ++ неопределенная ссылка на `_imp__glewInit @ 0`

Примечание: я видел пост о человеке, имеющем эту проблему на языке Си, потому что скрипт glew.c не загружался для него, я не думаю, что это моя проблема. Следуя точным шагам на веб-сайте документации GLEW, насколько это возможно (и в которых я не увидел упоминания о требовании добавить файл с именем glew.c), я настроил glew с MinGW и извлек dll и libs в соответствующие папки еще во время компиляции я получаю это сообщение:

undefined reference to `_imp__glewInit@0`

Вот мой основной файл main.cpp:

#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <GL/glew.h>
#include <GL/glut.h>

using namespace std;

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutCreateWindow("Glew Test");
GLenum err = glewInit();

if (GLEW_OK != err)
{
cout << "Something effed up";
}

cout << "Awwwwwwwwhhhhh Yeeeeeeeaaaaah!!!";

return 0;
}

И вот мой MakeFile:

MY_LIBS = -lglut32 -lglew32 -lopengl32
glewex:
g++ -g main.cpp -o glewex $(MY_LIBS)

Есть идеи, почему я получаю эту ошибку?

2

Решение

Почему вы настаиваете на внешних ссылках на эту библиотеку? Это вызывает гораздо больше проблем, чем оно того стоит.

добавлять glew.c к вашему проекту. Просто скомпилируйте его с остальными исходными файлами. До тех пор, как вы #define GLEW_STATIC это будет работать нормально. Задача решена.

Даже если вам удастся связать его с библиотекой, вы будете привязаны к одной конкретной архитектуре / сборке / версии. Если вы просто включите glew.c Вы сможете свободно строить проект практически где угодно.

9

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

У меня была похожая проблема. glewGetErrorString и glewInit были объявлены как неопределенные для меня. не мог отследить проблему.

потом я вспомнил, что скачал 64-битную версию glew, в то время как свободно перенасыщенный и все остальное, что я скачал, было 32-битным

так что заново скачал glew для 32 бит. и все работало отлично! надеюсь, что это поможет кому-то в будущем.

3

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