在 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”的主要内容,如果未能解决你的问题,请参考以下文章

在 MacOS Sierra 上找不到 OpenSSL

jenv 在 MacOS 上找不到通过 brew 安装的 java 17

在 MacOs Mojave 上找不到 XAMPP 的 httpd-xampp.conf 文件

在计算机“。”上找不到服务 ServiceName

Kivy安装找不到GL/gl.h?

在 Mac OS 上找不到 /dev/kvm