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. Этот другой материал не имеет значения. Кроме того, если оба присутствуют, попробуйте поменять местами порядок, который имеет значение в некоторых случаях.