GLFW Неопределенные ссылки с использованием Eclipse + MinGW в Windows 8

0

Я пытаюсь настроить 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'
  • 0
    Я полагаю, вы поместили загруженные файлы в свою папку lib-mingw , верно? Какой пакет вы скачали именно?
  • 0
    Я скачал 64-битные двоичные файлы Windows. Он поставляется с включаемыми файлами и библиотеками для компиляторов mingw и msvc; так что да, библиотеки находятся в папке lib-mingw.
Показать ещё 3 комментария
Теги:
glfw
windows-8

1 ответ

0

GLFW обеспечивает как 64-битную, так и 32-битную двоичные версии. Когда вы скомпилируете свою программу, вы можете создать либо 64-битный, либо 32-разрядный. Ваша программа должна быть совместима с библиотеками, которые вы используете.

Это означает, что только потому, что у вас 64-битный компьютер, это не значит, что вам нужны 64-битные двоичные файлы. Также неплохо проверить, что ваш компилятор выводит то, что, по вашему мнению, выводит.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню