首页 > 解决方案 > GLFW_PRESS 抛出“需要左值作为赋值的左操作数”

问题描述

我正在尝试使用文档中提供的代码制作一个简单的 GLFW 键回调函数:

void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) {
    if (key == GLFW_KEY_W && action = GLFW_PRESS) {
        glTranslatef(0.25f, 0, 0);
    }
    if (key == GLFW_KEY_A && action = GLFW_PRESS) {
        glTranslatef(0, 0, 0.25f);
    }
    if (key == GLFW_KEY_S && action = GLFW_PRESS) {
        glTranslatef(-0.25f, 0, 0);
    }
    if (key == GLFW_KEY_D && action = GLFW_PRESS) {
        glTranslatef(0, 0, -0.25f);
    }
}

但是,G++ 抛出错误:

glfw3.h:310:37: error: lvalue required as left operand of assignment
  310 | #define GLFW_PRESS                  1
      |                                     ^
main.cpp:70:36: note: in expansion of macro 'GLFW_PRESS'
   70 |  if (key == GLFW_KEY_W && action = GLFW_PRESS) {

对于这些“if”语句中的每一个。

我在使用此命令编译时遇到了它: g++ main.cpp -lopengl32 -lglu32 -lglfw3 -mwindows. 我已经用 MinGW 正确安装了 GLFW,它可以自己编译。

标签: c++openglg++glfw

解决方案


问题是语法错误,使用=而不是==.


推荐阅读