質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Q&A

解決済

1回答

2903閲覧

pkg-config にパスを通してもpkg-config --cflags opengl がエラーになる理由が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

0グッド

0クリップ

投稿2021/10/04 00:58

提示コードですがmakefileでコマンド提示コードのエラーが出るのでpkg-configにパスを通して必要なリンクとライブラリ情報を得ようと思ったのですがなぜかパスを設定しても同じエラーが出ます。これはなぜでしょうか?原因がわかりません。参考サイトを参考にしました。

$ echo $PKG_CONFIG_PATH /usr/lib/
コマンド
$ make g++ obj/Ellipse.o obj/Line.o obj/Transform_2D.o obj/Circle.o obj/Rectangle.o obj/Triangle.o obj/Window.o obj/Camera.o obj/Main.o obj/Init.o obj/Resource.o obj/Text.o obj/Shader.o obj/Help.o obj/Point.o obj/Render.o obj/FrameWork.o obj/Simple_Draw.o -o GL -L/usr/local/lib -lGL -lGLEW -lglfw3 -lfreetype /usr/bin/ld: /usr/local/lib/libglfw3.a(posix_thread.c.o): undefined reference to symbol 'pthread_getspecific@@GLIBC_2.2.5' /usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [Makefile:14: GL] エラー 1

参考サイト: https://www.webdevqa.jp.net/ja/pkg-config/pkgconfigpath%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0/961482058/

コマンド
$ pkg-config --cflags opengl Package opengl was not found in the pkg-config search path. Perhaps you should add the directory containing `opengl.pc' to the PKG_CONFIG_PATH environment variable No package 'opengl' found
makefile
PRG :=GL SRC_DIR :=source OBJ_DIR :=obj DEP_DIR :=obj DEP :=$(wildcard $(DEP_DIR)/*.d) SRC :=$(wildcard $(SRC_DIR)/*.cpp) OBJ :=$(addprefix $(OBJ_DIR)/,$(patsubst %.cpp,%.o,$(notdir $(SRC)))) LDFLAGS :=`pkg-config --libs=opengl glew glfw3 freetype2` $(PRG): $(OBJ) #$(CXX) $^ -l ncurses -o $@ $(CXX) $^ -o $@ -L/usr/local/lib -lGL -lGLEW -lglfw3 -lfreetype $(OBJ_DIR)/%.o: source/%.cpp #$(CXX) -std=c++2a -I/usr/local/include/freetype2 -I/usr/include/libpng16 -I/usr/local/include -c -MMD -MP $< -o $@ $(CXX) -std=c++2a -c -MMD -MP $< -o $@ -include $(DEP) clean: rm -f ./$(OBJ_DIR)/*.o *.out ./$(OBJ_DIR)/*.d *.a $(PRG)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

int32_t

2021/10/04 01:31

makeで出るエラーと pkg-config --cflags opengl で出るエラーは関係なさそうです。別の質問にすべきでしょう。
guest

回答1

0

ベストアンサー

OpenGLをOS標準のパッケージ管理システムでインストールしてあれば、こういうトラブルは起きないはずです。

自分でソースからビルドした場合、OpenGLが元からpkg-configに対応していない場合は自分でpkg-configの設定ファイルを書く必要があります。pkg-configに対応している場合はどこかにインストールされている opengl.pc を探し出して、そのパスを環境変数PKG_CONFIG_PATHに足します。

投稿2021/10/04 02:32

int32_t

総合スコア20884

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問