【问题标题】:GLFW error - GLFWwindow* not recognized as valid argumentGLFW 错误 - GLFWwindow* 未被识别为有效参数
【发布时间】:2013-09-11 11:56:09
【问题描述】:

我正在尝试使用 GLFW 作为静态库来编译程序。我确信我已经正确链接了所有内容,因为其他 GLFW 函数不会引发任何错误。这些只是使用 GLFWwindow* 作为参数的函数。 例如:

glfwMakeContextCurrent(window); //window is a pointer of type GLFWwindow

错误: 无效参数'候选者是:void glfwMakeContextCurrent(*)'

这会给我一个错误。参数窗口无效。 其他期望指向 GLFWwindow 的函数也会抛出错误。 但其余的,没有 GLFWwindow* 作为预期参数的函数编译并工作得很好。

我正在使用 MinGW32、Eclipse CDT、Win7。 (我确定我使用的是 32 位 GLFW)

可能是什么原因,为什么他不接受我的指针?

P.S.: eclipse 编译 glfwMakeContextCurrent(0);并作为提示,当我将错误线悬停时,它会显示 glfwMakeContextCurrent(*);

【问题讨论】:

  • 你真的试过编译你的代码吗?这看起来像是来自 Eclipse,而不是编译器的消息。
  • 原来,链接静态库会引发一些未定义的引用(它们是在我删除 GLEW 链接后显示的)。现在我正在使用 glfw 的 dll 版本,没有任何错误。 mingw/g++ 也没有抱怨任何事情。但是错误“无效参数”仍然存在......也许这是Eclipse的一个错误。我将尝试运行带有此“错误”的程序并稍后再发布...

标签: c++ eclipse opengl mingw glfw


【解决方案1】:

glfw 中不存在函数glfwWindowMakeContextCurrent。根据您设置编译器的方式,它可能会假定它存在并且默认情况下假定它采用整数参数,因此它可能会由于这种类型不匹配而失败。但是,您可能正在寻找 glfwMakeContextCurrent 函数,它确实使用了 GLFWwindow* 参数。

【讨论】:

  • 啊该死的。这是一个错误。我确实在使用函数 glfwMakeContextCurrent(window); !这给了我错误
  • Invalid arguments ' 候选者是:void glfwMakeContextCurrent(*)'
【解决方案2】:

问题解决了……或多或少。 使用 GLFW 的静态版本会抛出一些链接错误,所以我现在使用的是 dll 版本。 我用这段代码做了一个测试程序,它工作得很好。 但是 Eclipse 仍然显示错误。 Eclipse似乎无法正确读取或找出该函数。

Invalid arguments '
Candidates are:
void glfwMakeContextCurrent(*)
'

需要了解如何让 Eclipse 忽略那些以 GLFWwindow* 作为参数的行...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2012-01-07
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多