Как я заставляю свой компилятор определять местоположение заголовочных файлов X11?

Я пытаюсь использовать GLEW и XServer / X11 в приложении C++, как проинструктировано в Главе 15 Супербиблии OpenGL, 5-го редактора.

Я использую этот Make-файл:

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

и получение этого результата:

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

[РЕДАКТИРОВАНИЕ:] После фиксации глупой ошибки кодирования, я теперь испытываю затруднения из-за X11, и моими проблемами GLEW является история.

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

[/РЕДАКТИРОВАНИЕ]

Если я комментирую включение glew.h, это перестало работать на включении glxew.h.

Я sudo-скопировал и вставил glew.h и glxew.h кому: /usr/include/GL. (Который является, где я полагаю, что они, как предполагается?)

Простите мне в случае, если я забыл включать что-то в свой вопрос - что-либо, что требуется знать или видеть от моего терминала, просто спрашивают.

4
задан 25 June 2013 в 16:33

1 ответ

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

Я предполагаю, что у Вас есть строка там с чем-то как строка ниже?

#include <glew.h>

Изменение это к

#include <GL/glew.h>

Это требуется, поскольку Вы скопировали его в GL/ подкаталог путей поиска, указанных в Вашем INCDIRS.


Я sudo-скопировал и вставил glew.h и glxew.h кому: /usr/include/GL

Я рекомендовал бы использовать /usr/local/include/GL поскольку это избежит конфликтов с пакетами Ubuntu.

Я теперь испытываю затруднения из-за X11, и моими проблемами GLEW является история.

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

потому что они находятся в /usr/local/include?

Эта ошибка, о библиотеках (двоичные файлы), не о заголовках. В случае, если Вы устанавливаете их вручную, необходимо разместить их в /usr/local/lib вместо include/ (это для заголовочных файлов). Или возможно Вы просто пропускаете X пакетов разработки здесь? Спросите это в новом вопросе, если это не имеет никакого отношения к Вашим заголовочным файлам.

Не забывайте обновлять Ваш INCDIR и LIBDIR включать новое /usr/local/include каталоги, например:

INCDIRS = -I/usr/include -L/usr/include -I/usr/local/include -L/usr/local/include 
1
ответ дан 25 June 2013 в 16:33

Другие вопросы по тегам:

Похожие вопросы: