Компиляция минимального приложения GLEW под Cygwin

Ваша проблема очень похожа на Рекомендационную систему , где вы хотите рекомендовать правильного клиента, который может ответить на заданный вопрос.

Очень похоже на Фильм / Предметы / Новостная система рекомендаций . Что касается фильмов, у нас есть длинный список фильмов, как рекомендовать лучшие фильмы пользователю на основе его интереса и истории.

Существует множество подходов для решения этой проблемы, обратите внимание, что ваши данные будут очень скудными (матрица агента клиента, где каждая ячейка представляет балл). Вы можете использовать SVD , вот пример по его использованию.

Есть несколько полезных ресурсов первый , второй , которые вы можете сослаться.

6
задан kelebron 23 December 2008 в 23:20
поделиться

4 ответа

Это кажется, что Вы хотите связаться против собственных библиотек Win32 вместо X11. Добавьте-L/lib/w32api. Иначе необходимо связаться против библиотек X11 (-L/usr/X11R6/lib-lX11-lXi-lXmu) для избавлений от glX* ошибки компоновщика..

1
ответ дан 10 December 2019 в 00:45
поделиться

Некоторое время назад у меня была похожая проблема, и я обнаружил, что есть два способа скомпилировать код opengl под Cygwin.
Первые ссылки на родные библиотеки win32api glut32, glu32, opengl32 (также glui). Они несколько старше:
перенасыщение v3.7.6
opengl v1.1
glui 2.11

Второй способ использует библиотеки X11 glut glu gl. В их файлах заголовков указан более новый номер версии (обратите внимание, что для использования расширений GL требуется> v1.2):
glut v4 (freeglut)
opengl v1.3
glext
...

Итак, чтобы использовать первый вариант, скомпилируйте с: -I / usr / include / opengl
и ссылку на: -lglut32 -lGLU32 -lOpenGL32

Чтобы использовать версию X11, скомпилируйте с : -I / usr / include / (который включен по умолчанию)
и ссылка на: -lglut -lGLU -lGL (обратите внимание на разницу)
вы можете добавить заголовки и библиотеки X11, но я думаю, они включены в GL.
-I / usr / X11R6 / include
-L / usr / X11R6 / lib -lXmu -lXi -lXext -lX11


В установщике Cygwin вы можете выбрать следующие пакеты:
opengl - предоставляет win32-версию opengl, glut, glui
libglut-devel - X11-версию glut (freeglut) , это также выберет все зависимые пакеты. (glproto, libGL libGLU, libX11, ...)
Я также рекомендую включить Xorg-server , так как вам понадобится X-сервер.

Надеюсь, это поможет.

6
ответ дан 10 December 2019 в 00:45
поделиться

Did any previous suggestion work for you?

I am not clear whether you are facing issues in linking or compiling GLEW. I use GLEW via including source and have used by linking in past.

If you want to compile GLEW then make sure you pick right zip, as using *nix based code's scripts may not run correctly under windows (not sure of Cygwin).

GLEW should be first in header and linking order.

0
ответ дан 10 December 2019 в 00:45
поделиться

Чтобы убедиться, что мы говорим об тех же проблемах, вот сообщение, которое я получал.

$ g ++ -o glew_test.exe glew_test.cpp -lglut32 -lglew32
c: \ Users \ Fredrik \ Users \ Fredrik \ AppAppData \ Local \ Temp / ccgSNdfr.o:
glew_test.cpp :(. text + 0x1c): неопределенная ссылка на `__glutInitWithExit '
c: \ Users \ Fredrik \ AppData \ Local \ Temp / ccgSNdfr.o:
glew_test.cpp :(. text + 0x37): неопределенная ссылка на `__glutCreateWindowWithExit '
c: \ Users \ Fredrik \ AppData \ Local \ Temp / ccgSNdfr.o:
glew_test.cpp :(. text + 0x53): неопределенная ссылка на `__glutCreateMenuWithExit '
c: \ Users \ Fredrik \ AppData \ Local \ Temp / ccgSNdfr.o:
glew_test.cpp :(. text + 0x9e): неопределенная ссылка на `glutInitDisplayMode '
c: \ Users \ Fredrik \ AppData \ Local \ Temp / ccgSNdfr.o:
glew_test.cpp :(. text + 0xb2): неопределенная ссылка на `glutInitWindowPosition '
c: \ Users \ Fredrik \ AppData \ Local \ Temp / ccgSNdfr.o:
glew_test.cpp :(. text + 0xc6): неопределенная ссылка на `glutInitWindowSize '
collect2: ld вернул 1 статус выхода

Следующие страницы помогли мне с этой проблемой.

В основном мне приходилось определять _STDCALL_SUPPORTED и _M_IX86 в начале файла и включать windows.h перед glew.h

Затем я использовал флаги -lglut32 -lglew32

Если вы хотите попробовать, вот также исходный код:

#define _STDCALL_SUPPORTED
#define _M_IX86
#include <windows.h>
#include <GL/glew.h>
#include <GL/glut.h>
#include <cstdio>

int main(int argc, char **argv) {
    glutInit(&argc, argv);
    glutCreateWindow("MM 2004-05");
    glewInit();
    if (glewIsSupported("GL_VERSION_2_0"))
        printf("Ready for OpenGL 2.0\n");
    else {
        printf("OpenGL 2.0 not supported\n");
    }
    return 0;
}

Обратите внимание, что окно по какой-то причине необходимо для теста OpenGL2.0.

3
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: