即使在成功链接后 GLFW 初始化也会失败

GLFW initialization fails even after successful linking

我最近开始学习 C++,主要来自 Java。我现在知道了基础知识,我想测试一些图形。显然,C++ 没有 Java 所具有的内置图形 API,所以我正在尝试使用 GLFW。不幸的是,我什至无法使用 glfwInit() 对其进行初始化。这是我的代码(它将 "Could not initialize GLFW" 记录到控制台):

#include <GLFW\glfw3.h>
#include <iostream>

int main() {
    if (!glfwInit()) {
        std::cout << "Could not initialize GLFW" << std::endl;
    }
    else {
        std::cout << "GLFW initialized!" << std::endl;
        glfwTerminate();
    }

    std::cin.get();
    return 0;
}

我之前看过很多类似的测试代码,所以我假设是代码问题。我也没有收到任何链接错误,所以我认为我做对了。然而,这基本上是我第一次使用 C++ 的第三方库,所以我可能犯了一个简单的错误。

我正在使用 Visual Studio Community 2015,但由于 GLFW 还没有任何预构建的二进制文件,我不得不使用 CMake 自己构建它们。 (因为我以前从未这样做过,所以我在 Visual Studio Community 2013 中使用预构建的二进制文件重复了整个过程,我得到了相同的结果。)我添加了我的 'lib' 和 'include' 文件夹在配置属性 -> VC++ 目录中的适当位置,我在链接器 -> 输入 -> 附加依赖项中添加了 'glfw3.lib' 和 'opengl32.lib' 文件。

我发现有很多帖子存在链接错误(我现在没有了),或者即使初始化成功也无法使 GLFW 工作。但是,我没能找到其他人遇到和我一样的问题,我也不知道从哪里开始调试。非常感谢任何帮助。

好吧,显然这是 GLFW 中的一个错误。我添加了一个错误回调,它返回了 "No monitors found." 我在 GLFW github 页面上发现了 this 对类似问题的讨论,并且所有者最近添加了一个尚未进入的修复程序任何官方发布。我下载了master分支,按照之前的方式构建,替换了库和头文件,现在一切正常。