web-dev-qa-db-ja.com

コンパイラにX11ヘッダーファイルを見つけるにはどうすればよいですか?

OpenGL Superbible 5th edの第15章で説明されているように、C++アプリでGLEWとXServer/X11を使用しようとしています。

私はこの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

そして、この結果を得る:

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のインクルードに失敗します。

glew.hglxew.h/usr/include/GLにSudoコピーして貼り付けました。 (私は彼らがいるはずだと思う場所はどこですか?)

質問に何かを含めるのを忘れてしまった場合はご容赦ください。あなたが知りたいことや私の端末から見たいことは何でも聞いてください。

4
mynameisnafe

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

下の行のような行があると思いますか?

#include <glew.h>

それを変更する

#include <GL/glew.h>

INCDIRSで指定された検索パスのGL/サブディレクトリにコピーしたため、これは必須です。


glew.hglxew.h/usr/include/GLにSudoコピーして貼り付けました

Ubuntuパッケージとの競合を避けるため、/usr/local/include/GLを使用することをお勧めします。

私は現在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
gertvdijk