Я пытаюсь настроить GLFW. Я работаю в Eclipse CDT в Windows 8.1
Я загрузил двоичные файлы GLFW и пытаюсь запустить пример кода здесь http://www.glfw.org/documentation.html
До сих пор я включил заголовок glfw, и я связываю (статически) с glfw3, opengl32 и gdi32 (в этом порядке).
Компилятор выполняет следующие команды:
g++ "-IC:\\Libraries\\GLFW3\\include" -O0 -g3 -Wall -c -fmessage-length=0 -o main.o "..\\main.cpp"
g++ "-LC:\\Libraries\\GLFW3\\lib-mingw" -o HelloGLFW3.exe main.o -lglfw3 -lopengl32 -lgdi32
Я получаю сообщение об ошибке "Неопределенная ссылка на..." для каждой из функций GLFW.
Я не могу понять, что я делаю неправильно. Я выполнил поиск в Google, и у Qaru возникли похожие вопросы, но ни одна из них не решила проблемы. Самое распространенное предложение - переупорядочить порядок привязки, но насколько я могу сказать, что порядок верен, и я попробовал его на всякий случай, но это не имело никакого значения.
Может ли кто-нибудь дать инструкции о том, как правильно установить ссылку?
EDIT: Я пробовал это как с 32-битными, так и с 64-битными бинарными файлами glfw (Моя первоначальная попытка была с 64-битными двоичными файлами, но Google сказал, что может быть проблемой, связанной с подключением 32-битных и 64-битных программ - из того, что я могу сказать версия MinGW может производить только 32-разрядные выходы). Это ошибки, которые возникают:
64-битные двоичные файлы:
undefined reference to 'glfwCreateWindow' main.cpp /HelloGLFW3 line 12 C/C++ Problem
undefined reference to 'glfwInit'
undefined reference to 'glfwMakeContextCurrent'
undefined reference to 'glfwPollEvents'
undefined reference to 'glfwSwapBuffers'
undefined reference to 'glfwTerminate'
undefined reference to 'glfwTerminate'
undefined reference to 'glfwWindowShouldClose'
32-битные двоичные файлы:
undefined reference to '_imp__CreateDCW@16' HelloGLFW3 line 0, external location: C:\Libraries\GLFW3\i386\lib-mingw\libglfw3.a(win32_gamma.c.obj):win32_gamma.c C/C++ Problem
undefined reference to '_imp__CreateDCW@16'
undefined reference to '_imp__DeleteDC@4'
undefined reference to '_imp__DeleteDC@4'
undefined reference to '_imp__DescribePixelFormat@16'
undefined reference to '_imp__GetDeviceCaps@8'
undefined reference to '_imp__GetDeviceGammaRamp@8'
undefined reference to '_imp__SetDeviceGammaRamp@8'
undefined reference to '_imp__SetPixelFormat@12'
undefined reference to '_imp__SwapBuffers@4'
GLFW обеспечивает как 64-битную, так и 32-битную двоичные версии. Когда вы скомпилируете свою программу, вы можете создать либо 64-битный, либо 32-разрядный. Ваша программа должна быть совместима с библиотеками, которые вы используете.
Это означает, что только потому, что у вас 64-битный компьютер, это не значит, что вам нужны 64-битные двоичные файлы. Также неплохо проверить, что ваш компилятор выводит то, что, по вашему мнению, выводит.
lib-mingw
, верно? Какой пакет вы скачали именно?