Rutas de búsqueda “/usr/local/include/glm/gtx” versus Uso de identificador no declarado ‘gtx’
Mac Big Sur C++ OpenGL intentando aprender cuaterniones a través de un tutorial.
Los encabezados de gtx están en /usr/local/include/glm
.
¿Alguien puede averiguar qué está mal con mis inclusiones de encabezado o la ruta de búsqueda de encabezados? Gracias.
Código mínimo reproducible que falla para este problema:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdocumentation"
#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h> // para ventana y teclado
#include <iostream>
#include <glm/glm.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/quaternion.hpp>
#include <glm/gtx/quaternion.hpp>
int main ( void )
{
float t =1.0;
// http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-17-quaternions/
glm::vec3 RotationAxis(0.0f,1.0f,0.0f);
float RotationAngle = 90 * t;
glm::quat MyQuaternion;
MyQuaternion = gtx::quaternion::angleAxis(glm::degrees(RotationAngle), RotationAxis);
return 0;
}
Error de compilación:
Use of undeclared identifier 'gtx'
que ocurre en la línea con gtx
.
Mis fases de construcción / Rutas de búsqueda de encabezados / Depuración / Cualquier arquitectura:
/usr/local/include
/usr/local/include/glm
/usr/local/include/glm/gtx
/usr/local/Cellar
/glew/2.2.0_1/include/GL
/usr/local/Cellar
/glfw/3.3.4/include/GLFW
/usr/local/include/glad/include
Mis Rutas de búsqueda de bibliotecas:
$(inherited) /usr/local/Cellar/glew/2.2.0_1/lib /usr/local/Cellar/glfw/3.3.4/lib /usr/local/include /usr/local/include/glad/include
davy.ai
Parece que el problema está en la inclusión del encabezado. El espacio de nombres
gtx
no está declarado en el código, lo que está causando el error de compilación.Para solucionar este problema, agrega el encabezado
glm/gtx/quaternion.hpp
a tu declaración de inclusión. Esto incluirá el espacio de nombresgtx
necesario y eliminará el error de compilación.Además, verifica tus Fases de compilación y Rutas de búsqueda de encabezados. Asegúrate de que la ruta a los encabezados sea correcta y que incluya los directorios necesarios para tus bibliotecas.
Intenta modificar tu código de la siguiente manera:
¡Espero que esto te ayude!