cmake 在 OS X 上找不到 gl.h

2024-04-15

我在 OS X 10.10 上并尝试使用 GLUT 和 OpenGL 构建一个 C“项目”。 我将其简化为展示我的问题的最小示例。我有以下内容CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)
FIND_PACKAGE(OpenGL REQUIRED)
FIND_PACKAGE(GLUT REQUIRED)

if(OpenGL_FOUND) # never true, but printed as true
    link_directories(${OpenGL_LIBRARY_DIRS})
    include_directories(${OpenGL_INCLUDE_DIR})
endif(OpenGL_FOUND)

if(GLUT_FOUND)
    link_directories(${GLUT_LIBRARY_DIR})
    include_directories(${GLUT_INCLUDE_DIR})
endif(GLUT_FOUND)

# print all vars because wtf
get_cmake_property(_v VARIABLES)
foreach(_v ${_v})
   message(STATUS "${_v}=${${_v}}")
endforeach()


add_executable(main main.c)

target_link_libraries(main ${GLUT_LIBRARY} ${OPENGL_LIBRARY})

The main.c只是一个包含两个标头的虚拟对象:

#include <gl.h>
#include <glut.h>
int main()
{    
   return 0;
}

Now, cmake .运行良好并出于调试目的打印所有变量。我从某处获取了代码,我对 cmake 的了解不够,不知道它是否按照我的想法进行。无论如何,跑步make returns

main.c:1:10: fatal error: 'gl.h' file not found
#include <gl.h>
         ^
1 error generated.

标题gl.h实际上存在于/System/Library/Frameworks/OpenGL.framework/Headers因此应该由 cmake 找到,特别是因为glut.h具有相同的结构(只需用 GLUT 替换 OpenGL)并且发现很好。另外,让我感到困惑的是,if(GLUT_FOUND)...永远不会被执行(尝试将message语句),但在它说的打印变量中OPENGL_FOUND=TRUE。但删除 if 条件不会改变任何内容。

真正的问题是:到底发生了什么?为什么 a) cmake 找不到标头,除非特别包含,b) 尽管 if 块不执行OPENGL_FOUND打印为 TRUE,c) 不会出现此类问题glut.h?花了几个小时在这上面,但无法理解为什么。


这是很常见的事

#if defined(__APPLE__)
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#endif

您可以在 glfw、glew、sfml 等中看到以一种或另一种形式完成此操作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake 在 OS X 上找不到 gl.h 的相关文章

随机推荐

  • Apache Ignite - 执行器中的池大小

    我正在尝试使用基于集群的执行器服务 获取启用集群的执行器服务 ExecutorService exec ignite executorService 有没有办法设置执行程序服务池中的线程数 希望作业将以循环方式在集群中的每个节点中执行 Th
  • python 请求特定 SNI 证书的“证书验证失败”

    多年来我一直在几乎所有项目中使用 python requests 框架 但还没有遇到过这样的问题 这只发生在网站上www pagedna com据我所知 要重现的代码示例非常简单 import requests requests get h
  • 如何将行添加到数据框中仅修改某些列

    为了准备用于绘图的数据 我需要向数据添加一个新行 我有这个数据框 df lt data frame test id c 1 1 1 1 test nr c 1 1 1 1 region c A B C D test value c 3 1
  • 使用两个数据库的单个 Django 应用程序

    如何在 Django 中配置托管在两个不同数据库中的模型 到目前为止 我已经在出色的 Django 环境中设置了 3 个数据库 我的一个应用程序使用Router https docs djangoproject com en dev top
  • Cordova 签名的 apk 在闪屏后产生空白屏幕

    Cordova 调试构建工作正常 但是签名 apk 在闪屏后会出现白屏 已经尝试创建新应用程序并使用发布密钥进行签名 但签名的 apk 也有同样的问题 cordova version 7 1 0 cordova platform andro
  • 我想要动态加载到入口点的 Webpack 捆绑模块

    下面的代码似乎使用动态导入 https webpack js org guides code splitting dynamic imports function executeApplication void const loadData
  • 在 NSView 中重复背景图像

    我正在尝试在 NSView 中绘制重复的背景图像 到目前为止我已经有了 INIT id initWithFrame NSRect frame if self super initWithFrame frame self background
  • 如何使用 JavaScript 打印数组中的元素

    我有一个包含元素的数组 例如 array example1 example2 example3 如何按以下格式打印 示例 1 2 示例 2 3 示例 3 Use forEach为此 如下所示 var a a b c a forEach fu
  • NSDate 和 NSDateFormatter 问题

    我有点难以理解为什么以下代码会导致我的应用程序崩溃 NSDateFormatter dateFormatter NSDateFormatter alloc init dateFormatter setDateFormat MMMM d yy
  • 使用毕加索下载图像会在缓存中创建不正确的图像,可能修复吗?

    我有一个带有图像的领域数据库URLs 我需要将这些图像下载到ExternalCacheDir 现在这里有problem 假设我有三张图片 ar11 jpg ar12 jpg ar13 jpg 执行我的代码后 我会在缓存目录中获得 3 个 j
  • 如何向 UISearchBar 添加按钮

    我需要像上图一样实现 如何向 UI 搜索栏添加按钮 适用于 iPhone 请帮帮我 提前致谢 为此 您需要创建一个类 MyScearchBar 其父类是 UISearchBar 我那个班 void layoutSubviews self a
  • spring-data-jpa 和 querydsl 的 Maven 构建问题

    我有一个用于 spring data jpa 和 QueryDsl 的 Eclipse Maven 项目 我似乎对 maven apt plugin 有问题 如果我执行 mvn clean 然后执行 mvn install 它会尝试 处理
  • Django Haystack 对同一模型的多个字段进行索引

    我正在尝试使用以下命令将 elasticsearch 嵌入到我的 Django 应用程序中django haystack 我正在尝试实现用户搜索 我的用户模型是这样的 class MyUser AbstractBaseUser userna
  • Android:如何将 DatePicker 视图日期格式从 MM/dd/yyyy 更改为 dd/MM/yyyy?

    我很长一段时间以来一直试图找到这个问题的答案 我还查看了以下链接 Android DatePicker 小工具格式 https stackoverflow com questions 4499433 android datepicker w
  • GitHub上的origin和upstream有什么区别?

    有什么区别origin and upstream on GitHub http en wikipedia org wiki GitHub When a git branch a命令执行后 它显示的某些分支的前缀为origin remotes
  • 使用 F# 3.0 进行动态 SQL 查询?

    我尝试过使用 FLINQ 但它对于 F 3 0 beta 来说已经过时了 有人可以指导我如何在 F 中创建动态 SQL 查询吗 我们最近开发了一个库 FSharpComposableQuery 旨在支持 F 3 0 及以上版本中更灵活的查询
  • 为什么“sed -n -i”会删除现有文件内容?

    运行 Fedora 25 服务器版本 sed version给我sed GNU sed 4 2 2以及通常的版权和联系信息 我创建了一个文本文件sudo vi potential sed bug Vi 显示该文件的内容 带有 set lis
  • 将 A 框架与 Three.js 相结合

    我想知道 是否可以将 Three js 元素添加到 A 框架场景中 假设 A frame 是基于 Three js 构建的 并且 three Version 0 74 0 登录到你的控制台这不应该是一件奇怪的事情 对吧 我在我的 A 框架场
  • WPF 中的颜色过渡

    我想要进行颜色过渡BackgroundWPF 窗口的颜色 我怎样才能做到这一点 例如 Brush i color Brushes Red this is the initial color Brush f color Brushes Blu
  • cmake 在 OS X 上找不到 gl.h

    我在 OS X 10 10 上并尝试使用 GLUT 和 OpenGL 构建一个 C 项目 我将其简化为展示我的问题的最小示例 我有以下内容CMakeLists txt cmake minimum required VERSION 2 8 F