GLFW_PRESS выбрасывает «lvalue, требуемый как левый операнд присваивания» - PullRequest
1 голос
/ 16 июня 2020

Я новичок-i sh в OpenGL с GLFW, поэтому я не уверен в некоторых из этих ошибок.

Я пытаюсь создать простую функцию обратного вызова клавиши 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. Я правильно установил GLFW с MinGW, которая сама по себе компилируется.

1 Ответ

1 голос
/ 16 июня 2020

Проблема была в том, что я сделал «=» вместо «==».

...