2

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

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

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

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

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

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

PS:eclipse编译glfwMakeContextCurrent(0);并作为提示,当我将错误线悬停时,它会显示 glfwMakeContextCurrent(*); <- 没有类型,只是一个星号

4

2 回答 2

0

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

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

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

于 2013-09-08T11:23:24.920 回答
0

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

于 2013-09-07T16:16:06.473 回答