【问题标题】:CMake on FreeBSD doesn't see GL/gl.h in /usr/local/includeFreeBSD 上的 CMake 在 /usr/local/include 中看不到 GL/gl.h
【发布时间】:2015-12-13 23:04:49
【问题描述】:

我正在学习 OpenGL 并尝试使我的代码尽可能地可移植。目前,我设法在 Ubuntu Linux 14.04、Windows 7 和 MacOS 上编译了一个项目。但是我在使用 FreeBSD 时遇到了一些问题(PC-BSD 10.2 如果重要的话)。这是一个代码示例:

运行make 后(请参阅README.md 中的所有构建步骤)clang 抱怨它找不到./glfw/include/GLFW/glfw3.h 中使用的<GL/gl.h>。但是GL/gl.h 存在于 /usr/local/include 目录中。

根据 Google 的说法,这是一个众所周知的问题。我尝试在CMakeLists.txt 中手动编辑CMAKE_CXX_FLAGS,修改环境变量等。没有任何效果。

你能帮帮我吗?

【问题讨论】:

    标签: c++ opengl cmake clang freebsd


    【解决方案1】:

    您使用find_package(OpenGL REQUIRED) 并使用${OPENGL_LIBRARY}(根据文档,应该是${OPENGL_LIBRARIES}${OPENGL_gl_LIBRARY}),但您不使用include_directories(${OPENGL_INCLUDE_DIR})

    FreeBSD 将所有 3d 方软件安装到 /usr/local 前缀中,许多开发人员认为他们需要的所有头文件都在 /usr 中。对于 Linux 来说,这只是巧合。因此,如果您的软件使用 OpenGL,您应该在构建系统代码中明确提及其包含和库路径,而不是对其位置做出假设。

    【讨论】:

      猜你喜欢
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 2017-06-05
      • 2013-07-03
      • 2013-12-05
      • 1970-01-01
      • 2020-07-15
      相关资源
      最近更新 更多