LoginSignup
1
0

More than 1 year has passed since last update.

【Macでcmake】エラー'Failed to find "gl.h" in "/System/Library/Frameworks/OpenGL.framework/Headers;/System/Library/Frameworks/AGL.framework/Headers"'の直し方

Last updated at Posted at 2021-11-22

MacOS Monterey version 12.0.1でcmakeを用いてpcl(Point Cloud Library)のプロジェクトをビルドする際、以下のエラーに遭遇したため備忘録がてら記録しておくことにしました。

CMake Error at /usr/local/opt/qt@5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
  Failed to find "gl.h" in
  "/System/Library/Frameworks/OpenGL.framework/Headers;/System/Library/Frameworks/AGL.framework/Headers".

対処法

エラーログに則って /usr/local/opt/qt@5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmakeを確認してみます。

vim /usr/local/opt/qt@5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake

すると、最上部に以下のような記述があります。

set(_GL_INCDIRS "/System/Library/Frameworks/OpenGL.framework/Headers" "/System/Library/Frameworks/AGL.framework/Headers" 

ここで、一度/System/Library/Frameworks/OpenGL.frameworkの中身を確認してみましょう。

%ls /System/Library/Frameworks/OpenGL.framework
Libraries	Resources	Versions

指定されていたHeadersが無いのが確認できたかと思います。エラーの原因はここです。
では、代わりのHeadersに何を指定すれば良いのかというと、以下の二つを設定する必要があります。

"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framework/Headers"
 "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.framework/Headers"

では、/usr/local/opt/qt@5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmakeを書き換えていきましょう。chmodなどで書き込みを許可してからエディタで開いて

set(_GL_INCDIRS "/System/Library/Frameworks/OpenGL.framework/Headers" "/System/Library/Frameworks/AGL.framework/Headers"

set(_GL_INCDIRS "/System/Library/Frameworks/OpenGL.framework/Headers" "/System/Library/Frameworks/AGL.framework/Headers" "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/AGL.framework/Headers" "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/System/Library/Frameworks/OpenGL.framework/Headers")

に書き換えます。
以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0