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

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

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

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1908閲覧

GL/glew.hのインクルード

Petro

総合スコア12

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2019/03/23 03:06

GL/glew.hをインクルードするプログラムでmakeエラーが出ます。OSはmac
です。
usr/local/Cellar/glew/2.1.0/include/GL/glew.h

usr/local/include/GL/glew.h
が見つかりましたが、
GL/glew.h not found
とエラーになります。
パスを通してみましたがうまくいきませんでした。
お心当たりのある方がいらっしゃいましたらご教授いただけますでしょうか。
よろしくお願いします。

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

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

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

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

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

Chironian

2019/03/23 13:21

情報が少なすぎて「心当たりのある方」がいないのだと思いますよ。エラー・メッセージの内容や行った対処を具体的にあるがまま記載した方が回答がつきやすいですよ。
Petro

2019/03/25 00:18

Chironianさん、ありがとうございます。失礼いたしました。 https://github.com/uoip/pangolin 上記URLからインストールしたpangolinのビルドをしています。使用OSはmacOSです。 cmake .. はエラーなく通り、makeのところでエラーが出ています。 /anaconda3/pangolin/include/pangolin/display/attach.h:33:10: fatal error: 'GL/glew.h' file not found #include <GL/glew.h> 8 warnings and 1 error generated. make[2]: *** [python/CMakeFiles/pangolin.dir/pangolin.cpp.o] Error 1 make[1]: *** [python/CMakeFiles/pangolin.dir/all] Error 2 make: *** [all] Error 2 という内容です。 usr/local/Cellar/glew/2.1.0/include/GL/glew.h usr/local/include/GL/glew.h の2つにglew.hがあり、それぞれシンボリックとハードリンクになっているらしいので、/usr/local/Cellar/glew/2.1.0/includeにパスを通したのですがやはりエラーのままです。 よろしくお願いいたします。
Stan_Dma

2019/03/26 05:18

I may be worried why you have said "usr/local/include/GL/glew.h" without slash in the beginning of the file path. Might be simply "/usr/local/..." (with leading slash), or else what you intend or mean something? Let me see several lines of an output by issuing "less /usr/local/include/GL/glew.h".
Petro

2019/03/26 09:23

Thank you Stan_Dma. Sorry for confusing you. There is the slash as you suggested like this: /usr/local/include/GL $ ls glew.h glxew.h wglew.h /usr/local/Cellar/glew/2.1.0/include/GL $ ls glew.h glxew.h wglew.h Thank you for your kind support.
Stan_Dma

2019/03/26 09:27

I dont have mac and also dont know about the hard or soft links around the include files. I am totally unsure but that links said above sounds like somewhat suspicious for me to work. Why not try again like the following command (again, after removing the build directory) without using links concerning about the glew includes and libraries? mkdir build && cd build && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DGLEW_INCLUDE_DIR=/usr/local/Cellar/glew/2.1.0/include \ -DGLEW_LIBRARY=/usr/local/Cellar/glew/2.1.0/lib64/libGLEW.so \ .. Replace the version and/or the library name to yours. Hope this help.
Petro

2019/03/26 09:45

Thank you Stan_Dma, I tried it. The folder has /usr/local/Cellar/glew/2.1.0/lib $ ls cmake libGLEW.2.1.dylib libGLEW.dylib libGLEW.2.1.0.dylib libGLEW.a pkgconfig so I changed as glew/2.1.0/lib/libGREW.a but this did not work. Thank you.
Stan_Dma

2019/03/26 09:50 編集

even if -DGLEW_LIBRARY=/usr/local/Cellar/glew/2.1.0/lib/libGLEW.dylib? Maybe typo "s/libGREW/libGLEW/"
Petro

2019/03/26 09:53

Thank you. Sorry for my typo. Actually cmake passes correctly, but make -j4 causes error again.
Stan_Dma

2019/03/26 09:56

Nothing more I have, except last thing I recommend is when you build, make -j1 should be safter than make -j<N> to avoid any annoyance causing problem in such a case.
Petro

2019/03/26 10:00

Thank you Stan_Dma, I will be trying to solve this problem. I really appreciate your continuous help again and again.
guest

回答1

0

ベストアンサー

こんにちは。

きちんとインクルード・パスを設定していたら、それで良いはずです。
ないとは思いますが、設定されたパスはPATHではないですよね?

投稿2019/03/25 17:05

Chironian

総合スコア23272

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

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

Petro

2019/03/25 23:31

Chironianさん、こんにちは。 ありがとうございます。 vi ~/.bash_profileで編集して export PATH=$PATH:/usr/local/Cellar export PATH=$PATH:/usr/local/include としています。 もしかしたらこれが間違いでしょうか?浅学でお恥ずかしいです。 よろしくお願いいたします。
Chironian

2019/03/26 04:29

それはインクルード・パスではないです。 g++コマンドで、-Iオプションで指定します。 CMakeの場合は、include_directoriesで指定することで、CMakeがコンパイラへうまいこと指定してくれます。 src/CMakeLists.txtの160行目でGLEWを探して、同560行目でインクルード・パスを指定しているように見えます。この機構がうまく動いていないということのようです。 find_packageが返してくるインクルード・パスが実際のパスと一致していない筈です。 pangolinの作者さんがテストした時と、Petroさんの環境の相違が原因かもしれません。 CMakeのバージョンやGLEWのバージョンを一致させることができると良いのですが。 他に、pangolinの最新版はmacではビルドできないケースもあると思います。(サポート環境全てでテストを行うのは結構手間なので、無償のプロジェクトの場合、そこまでやっていないこともあるかと。) この場合は、ご自身で対応されプル・リクエストを投げてみるのも面白いと思いますよ。
Petro

2019/03/27 02:49

Chironianさん、ありがとうございます。 とても勉強になります。恥ずかしながらmakeの仕組みも理解できておりませんが、おぼろげながら原因に近づけたように思います。 Chironianさん、Stan_Dmaさん、お二人ともありがとうございました。 可能ならお二人にベストアンサーをつけさせていただきたい気持ちですが、今回はChironianさんをベストアンサーにさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問