FreeBSD 上的 CMake 在 /usr/local/include 中看不到 GL/gl.h
CMake on FreeBSD doesn't see GL/gl.h in /usr/local/include
我正在学习 OpenGL 并尝试使我的代码尽可能可移植。现在我设法在 Ubuntu Linux 14.04、Windows 7 和 MacOS 上编译了一个项目。但是我在使用 FreeBSD(PC-BSD 10.2 如果重要的话)时遇到了一些问题。这是一个代码示例:
在 运行 make
之后(查看 README.md 中的所有构建步骤)clang 抱怨它找不到 <GL/gl.h>
中使用的 ./glfw/include/GLFW/glfw3.h
.但是 GL/gl.h
存在于 /usr/local/include 目录中。
根据 Google,这是一个众所周知的问题。我尝试在 CMakeLists.txt
中手动编辑 CMAKE_CXX_FLAGS
,修改环境变量等。没有任何效果。
你能帮帮我吗?
你做 find_package(OpenGL REQUIRED)
并使用 ${OPENGL_LIBRARY}
(根据文档应该是 ${OPENGL_LIBRARIES}
或 ${OPENGL_gl_LIBRARY}
),但你不做 include_directories(${OPENGL_INCLUDE_DIR})
.
FreeBSD 将所有 3d 方软件安装到 /usr/local
前缀中,许多开发人员认为他们需要的所有头文件都在 /usr
中。 Linux 也是如此,纯属巧合。因此,如果您的软件使用 OpenGL,您应该在构建系统代码中明确提及其包含和库路径,而不是对它们的位置做出假设。
我正在学习 OpenGL 并尝试使我的代码尽可能可移植。现在我设法在 Ubuntu Linux 14.04、Windows 7 和 MacOS 上编译了一个项目。但是我在使用 FreeBSD(PC-BSD 10.2 如果重要的话)时遇到了一些问题。这是一个代码示例:
在 运行 make
之后(查看 README.md 中的所有构建步骤)clang 抱怨它找不到 <GL/gl.h>
中使用的 ./glfw/include/GLFW/glfw3.h
.但是 GL/gl.h
存在于 /usr/local/include 目录中。
根据 Google,这是一个众所周知的问题。我尝试在 CMakeLists.txt
中手动编辑 CMAKE_CXX_FLAGS
,修改环境变量等。没有任何效果。
你能帮帮我吗?
你做 find_package(OpenGL REQUIRED)
并使用 ${OPENGL_LIBRARY}
(根据文档应该是 ${OPENGL_LIBRARIES}
或 ${OPENGL_gl_LIBRARY}
),但你不做 include_directories(${OPENGL_INCLUDE_DIR})
.
FreeBSD 将所有 3d 方软件安装到 /usr/local
前缀中,许多开发人员认为他们需要的所有头文件都在 /usr
中。 Linux 也是如此,纯属巧合。因此,如果您的软件使用 OpenGL,您应该在构建系统代码中明确提及其包含和库路径,而不是对它们的位置做出假设。