即使成功链接

时间:2015-09-01 01:30:24

标签: c++ visual-studio-2015 glfw

我最近开始学习C ++,主要来自Java。我现在知道基础知识,我想测试一些图形。显然,C ++没有Java所做的内置图形API,因此我尝试使用GLFW。不幸的是,我甚至不能用glfwInit()初始化它。这是我的代码(它记录了#34;无法初始化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中使用预先构建的二进制文件重复了整个过程,并得到了相同的结果。)我添加了我的&#39; lib&#39;和&#39;包括&#39;配置属性中适当位置的文件夹 - &gt; VC ++目录,我添加了&#39; glfw3.lib&#39;和&#39; opengl32.lib&#39;链接器中的文件 - &gt;输入 - &gt;附加依赖。

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

1 个答案:

答案 0 :(得分:1)

好的,显然这是GLFW中的一个错误。我添加了一个错误回调,它返回&#34;没有找到监视器。&#34;我在GLFW github页面上找到了this类似问题的讨论,并且所有者最近添加了一个修复程序,但尚未进入任何正式版本。我下载了master分支,像以前一样构建它,替换了libs和头文件,现在一切正常。