2014-11-12 2 views
0

Я пытаюсь настроить GLFW. Я работаю в Eclipse CDT на ОС Windows 8.1GLFW Неопределенные ссылки с использованием Eclipse + MinGW в Windows 8

Я скачал 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, и у Stack Overflow возникли похожие вопросы, но ни одна из них не решила проблемы. Самое распространенное предложение - переупорядочить порядок привязки, но насколько я могу сказать, что порядок верен, и я попробовал его на всякий случай, но это не имело никакого значения.

Может ли кто-нибудь предоставить инструкции о том, как правильно установить ссылку?

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' 

32bit исполняемые файлы:

undefined reference to `[email protected]' 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 `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
+0

Я предполагаю, что вы поместили загруженные двоичные файлы в свою папку 'lib-mingw', верно? Какой пакет вы загрузили точно? – PuerNoctis

+0

Я загрузил 64-битные двоичные файлы окон. Он включал файлы include и библиотеки для компиляторов mingw и msvc; поэтому да, библиотеки находятся в папке lib-mingw. – Francis

+0

Хорошо, я скачал их и посмотрю структуру. Можете ли вы отправить сообщение об ошибке «неразрешенной ссылки», чтобы я мог видеть, какой символ он пытается решить, пожалуйста? – PuerNoctis

ответ

0

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

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

Смежные вопросы