Perché non C++ trovare GLM le intestazioni?

Non ho le autorizzazioni per mettere GLM in usr/local/include o/usr /include, ma ho bisogno di utilizzare GLM per openGL. Il codice (io non sono in grado di cambiare) cerca GLM come questo:

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

la cartella glm è nella stessa directory come il mio main.cpp dove questo codice è da. Penso che non funziona perché è alla ricerca per glm in/usr /include, dove nelle intestazioni (im utilizzando redhat linux)

Come posso evitare che ciò accada, visto che non posso eseguire:

 g++ main.cpp -lGL -lglut -lGLEW

senza questi errori:

main.cpp:46:23: error: glm/glm.hpp: No such file or directory
main.cpp:47:40: error: glm/gtc/matrix_transform.hpp: No such file or directory
main.cpp:48:32: error: glm/gtc/type_ptr.hpp: No such file or directory
main.cpp:62: error: glm has not been declared
main.cpp:62: error: expected constructor, destructor, or type conversion before cameraMatrix
main.cpp: In function int setShaderData(const unsigned int&)’:
main.cpp:102: error: glm has not been declared
main.cpp:102: error: expected ‘;’ before projection
main.cpp:105: error: glm has not been declared
main.cpp:105: error: projection was not declared in this scope
main.cpp:109: error: glm has not been declared
main.cpp:109: error: expected ‘;’ before modelview
main.cpp: In function void render()’:
main.cpp:187: error: cameraMatrix was not declared in this scope
main.cpp:187: error: glm has not been declared
main.cpp:200: error: glm has not been declared

OriginaleL’autore Barney Chambers | 2015-03-11

2 risposte

  1. 9

    GLM non è parte di OpenGL. È un C + + libreria matematica che ha la stessa sintassi di GLSL. Per utilizzarlo è necessario scaricare dal qui o installare usando il gestore di pacchetti (anche se non si dispone di diritti amministrativi sulla macchina, quindi non sarà in grado di farlo).

    Una volta che si hanno, è necessario aggiungerlo al tuo percorso di inclusione:

     g++ main.cpp -lGL -lglut -lGLEW -I/path/to/glm/headers

    Anche se lo si installa con un gestore di pacchetti sarà probabilmente finiscono nel sistema include path.

    Grazie per il vostro aiuto, ho letto che perché è solo il file di intestazione non c’è nulla da installare, è vero? Anche io l’ho scaricato ed è nella stessa cartella del mio main.cpp. che dovrebbe il mio argomento-I dire?
    Provare -I. o -I./headers
    Grazie Amadeus, che ha lavorato. Nonostante un errore con la mia openGL, ma questo è un grande aiuto

    OriginaleL’autore Jherico

  2. 23

    La mia risposta non è realmente correlato all’autore della domanda, ma sto solo lasciando qui per coloro che vengono qui da ubuntu con un pacchetto mancante

    sudo apt-get install libglm-dev
    Sei il nostro eroe :haha:

    OriginaleL’autore SerCe

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *