Come faccio a ottenere il mio compilatore per individuare i file di intestazione X11?

4

Sto cercando di usare GLEW e XServer / X11 in un'applicazione C ++ come indicato nel capitolo 15 di OpenGL Superbible, 5a ed.

Sto usando questo Makefile:

LIBDIRS = -L/usr/X11R6/lib -L/usr/X11R6/lib64 -L/usr/local/lib
INCDIRS = -I/usr/include -L/usr/include 

CC = g++
CFLAGS = $(COMPILERFLAGS) -g $(INCDIRS)
LIBS = -lX11 -lXi -lXmu -lm -lGLEW -lGLU -lGL

GLXBasics: GLXBasics.o
        $(CC) $(CFLAGS) -o GLXBasics $(LIBDIRS) GLXBasics.cpp $(LIBS)

clean:
        rm -f *.o

e ottenere questo risultato:

GLXBasics.cpp:4:18: fatal error: glew.h: No such file or directory

[EDIT:] Dopo aver risolto un errore di codifica stupido, ora ho problemi con X11 e i miei problemi con GLEW sono storici.

/usr/bin/ld: cannot find -lXi
/usr/bin/ld: cannot find -lXmu

[/ EDIT]

Se commento l'inclusione di glew.h , fallisce l'inclusione di glxew.h .

Ho aggiunto sudo e incollato glew.h e glxew.h a /usr/include/GL . (Qual è il posto in cui credo che dovrebbero essere?)

Perdonami se ho dimenticato di includere qualcosa nella mia domanda - qualsiasi cosa ti piacerebbe sapere o vedere dal mio terminale basta chiedere.

    
posta mynameisnafe 25.06.2013 - 13:53

1 risposta

1
  

GLXBasics.cpp:4:18: fatal error: glew.h: No such file or directory

Suppongo che tu abbia una linea lì con qualcosa come la linea qui sotto?

#include <glew.h>

Cambia in

#include <GL/glew.h>

È necessario, poiché lo hai copiato nella sottodirectory GL/ dei percorsi di ricerca specificati in INCDIRS .

  

Ho aggiunto sudo e incollato glew.h e glxew.h a /usr/include/GL

Suggerirei di usare /usr/local/include/GL per evitare conflitti con i pacchetti di Ubuntu.

  

Ora ho problemi con X11 e i miei problemi con GLEW sono storici.

/usr/bin/ld: cannot find -lXi
/usr/bin/ld: cannot find -lXmu
     

perché sono in /usr/local/include ?

Questo errore riguarda le librerie (file binari), non le intestazioni. Nel caso li installi manualmente, dovresti inserirli in /usr/local/lib anziché include/ (cioè per i file di intestazione). O forse ti mancano solo i pacchetti di sviluppo X qui? Chiedi questa domanda in una nuova domanda se questo non ha nulla a che fare con i tuoi file di intestazione.

Non dimenticare di aggiornare INCDIR e LIBDIR per includere le nuove directory /usr/local/include , ad esempio:

INCDIRS = -I/usr/include -L/usr/include -I/usr/local/include -L/usr/local/include 
    
risposta data gertvdijk 25.06.2013 - 14:17

Leggi altre domande sui tag