GLFW - не удалось открыть окно
Когда моя охота за кросс-платформенной платформой/библиотекой продолжалась, GLFW упоминался много раз. Итак, я решил попробовать. Теперь кажется, что я даже не могу создать окно.: -/
#include
#include
#include
int main(int argc, char *argv[])
{
int running = GL_TRUE;
srand(time(NULL));
if (!glfwInit())
exit(EXIT_FAILURE);
if (!glfwOpenWindow(300, 300, 0, 0, 0, 0, 0, 0, GLFW_WINDOW))
{
glfwTerminate();
exit(EXIT_FAILURE);
}
while (running)
{
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(rand() % 255 + 1, rand() % 255 + 1, rand() % 255 + 1, 0);
glfwSwapBuffers();
running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED);
}
glfwTerminate();
exit(EXIT_SUCCESS);
}
Я набрал это в MVС++ 2010, связал заголовок и 2 файла lib (и у него был 1 DLL файл, поэтому я бросил это в папку SysWOW64), и я получаю следующие ошибки:
1>------ Build started: Project: glfwTest, Configuration: Debug Win32 ------
1> test.cpp
1>c:\users\andrew\documents\visual studio 2010\projects\glfwtest\glfwtest\test.cpp(8): warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data
1>c:\users\andrew\documents\visual studio 2010\projects\glfwtest\glfwtest\test.cpp(22): warning C4244: 'argument' : conversion from 'int' to 'GLclampf', possible loss of data
1>c:\users\andrew\documents\visual studio 2010\projects\glfwtest\glfwtest\test.cpp(22): warning C4244: 'argument' : conversion from 'int' to 'GLclampf', possible loss of data
1>c:\users\andrew\documents\visual studio 2010\projects\glfwtest\glfwtest\test.cpp(22): warning C4244: 'argument' : conversion from 'int' to 'GLclampf', possible loss of data
1>test.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main
1>GLFW.lib(win32_window.obj) : error LNK2001: unresolved external symbol [email protected]
1>test.obj : error LNK2019: unresolved external symbol [email protected] referenced in function _main
1>GLFW.lib(window.obj) : error LNK2001: unresolved external symbol [email protected]
1>GLFW.lib(win32_window.obj) : error LNK2001: unresolved external symbol [email protected]
1>GLFW.lib(win32_window.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _initWGLExtensions
1>GLFW.lib(win32_glext.obj) : error LNK2001: unresolved external symbol [email protected]
1>GLFW.lib(win32_window.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _createWindow
1>GLFW.lib(win32_window.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _createContext
1>GLFW.lib(win32_window.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _destroyWindow
1>GLFW.lib(win32_window.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function __glfwPlatformSetWindowSize
1>GLFW.lib(win32_window.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function __glfwPlatformSetWindowSize
1>GLFW.lib(glext.obj) : error LNK2001: unresolved external symbol [email protected]
1>GLFW.lib(glext.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function __glfwParseGLVersion
1>c:\users\andrew\documents\visual studio 2010\Projects\glfwTest\Debug\glfwTest.exe : fatal error LNK1120: 9 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Я понимаю первые несколько со случайными цветами, но те, что после этого, не имеют для меня никакого смысла. Любая идея, что с этим не так?
Я уверен, что правильно связал libs. Я помещаю их в
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib каталог
и даже связал их с моим
C:\SDK\GLFW\glfw-2.7.bin.WIN32\lib-msvc100\debug directory.
Пакет GLFW был .zip файлом, поэтому я просто извлек его в папку SDK по умолчанию (для всех моих API и других вещей). Таким образом, C:\SDK\GLFW является моим значением по умолчанию для GLFW.
Ответы
Ответ 1
Вам нужно сделать ссылку на opengl32.lib
.
Для этого, как показано ниже, перейдите к Project Setting
, затем к Linker > input > Additional Dependencies
и добавьте туда opengl32.lib
(используйте ;
для разделения разных библиотек).
Обратите внимание, что на самом деле вам нигде не нужно иметь файл opengl32.lib
. Visual Studio знает, где его найти.
![Linking to extra libs in Visual Studio]()
Изменение: Я должен отметить, что вам не нужно ничего делать, кроме добавления opengl32.lib
. Этот другой материал не имеет значения. Кроме того, если оба присутствуют, попробуйте поменять местами порядок, который имеет значение в некоторых случаях.