在 macOS 11.3 上找不到“gl.h”
Posted
技术标签:
【中文标题】在 macOS 11.3 上找不到“gl.h”【英文标题】:Failed to find "gl.h" on macOS 11.3 【发布时间】:2021-06-02 06:23:26 【问题描述】:我已经在 Github Actions 的 macOS 11.3(M1 芯片)上作为自托管运行器启动并运行 XCode 12.5。
虽然我的 macOS 工作流程能够很好地在 github 托管的机器中找到 gl.h
,但我自己的自托管机器报告了这一点:
CMake Error at /Users/administrator/actions-runner/_work/Mudlet/Qt/5.14.2/clang_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
Error: Failed to find "gl.h" in
"/System/Library/Frameworks/OpenGL.framework/Headers;/System/Library/Frameworks/AGL.framework/Headers".
Call Stack (most recent call first):
/Users/administrator/actions-runner/_work/Mudlet/Qt/5.14.2/clang_64/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:202 (include)
3rdparty/vcpkg/scripts/buildsystems/vcpkg.cmake:555 (_find_package)
/Users/administrator/actions-runner/_work/Mudlet/Qt/5.14.2/clang_64/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:94 (find_package)
3rdparty/vcpkg/scripts/buildsystems/vcpkg.cmake:555 (_find_package)
/Users/administrator/actions-runner/_work/Mudlet/Qt/5.14.2/clang_64/lib/cmake/Qt5UiTools/Qt5UiToolsConfig.cmake:219 (find_package)
3rdparty/vcpkg/scripts/buildsystems/vcpkg.cmake:555 (_find_package)
3rdparty/edbee-lib/edbee-lib/CMakeLists.txt:177 (FIND_PACKAGE)
负责代码是this line:
FIND_PACKAGE(Qt5UiTools REQUIRED)
gl.h
无法定位的原因可能是什么?
【问题讨论】:
"gl.h
无法定位的原因是什么?" - 也许,您忘记指定应搜索此标头的目录。请向您展示代码。没有它,我们不可能为您提供帮助。
CMake 在配置时寻找标头,因此只需对 Qt5UITools 进行 FIND_PACKAGE 调用。
如果仅find_package(Qt5UITools)
触发给定问题,则在问题后添加仅包含给定行的代码。如果给定的行本身没有重现问题,那么我们需要注意这一点。顺便说一句,您的机器上究竟安装了 OpenGL 的哪个位置?
我不知道 OpenGL 安装在机器上的什么位置——我不是 macOS 的日常用户。不过,我确实安装了 XCode 和 CLI 工具。
【参考方案1】:
我在尝试制作 qt 应用程序时更新到 MacOS Big Sur (11.6.2) 时遇到了这个问题。
这是我得到的错误:
CMake Error at /usr/local/Qt-5.5.1/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".
Call Stack (most recent call first):
/usr/local/Qt-5.5.1/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:139 (include)
我的 google-fu 从 2019 年发现了这个 [https://github.com/ziglang/zig/issues/2208] https://github.com/ziglang/zig/issues/2208:
The new path to the framework is:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks
我看了看,gl.h 在好几个地方都找到了,包括 OpenGL.framework。
作为一种解决方法,我将 /usr/local/Qt-5.5.1/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 中的库路径从:
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/MacOSX.sdk/System/Library/Frameworks")
【讨论】:
以上是关于在 macOS 11.3 上找不到“gl.h”的主要内容,如果未能解决你的问题,请参考以下文章
jenv 在 MacOS 上找不到通过 brew 安装的 java 17