GLFW_PRESS 抛出 "lvalue required as left operand of assignment"
GLFW_PRESS throws "lvalue required as left operand of assignment"
我正在尝试使用文档中提供的代码制作一个简单的 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,它可以自行编译。
问题是语法错误,使用 =
而不是 ==
。
我正在尝试使用文档中提供的代码制作一个简单的 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,它可以自行编译。
问题是语法错误,使用 =
而不是 ==
。