我正在学习 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 的说法,这是一个众所周知的问题。我试图手动编辑 CMAKE_CXX_FLAGS
在CMakeLists.txt
,修改环境变量等。没有任何效果。
你能帮帮我吗?
最佳答案
您执行 find_package(OpenGL REQUIRED)
并使用 ${OPENGL_LIBRARY}
(应该是 ${OPENGL_LIBRARIES}
或 ${OPENGL_gl_LIBRARY}
根据文档),但您不执行 include_directories(${OPENGL_INCLUDE_DIR})
。
FreeBSD 将所有 3d 方软件安装到 /usr/local
前缀中,许多开发人员认为他们需要的所有 header 都在 /usr
中。 Linux 也是如此,只是巧合。因此,如果您的软件使用 OpenGL,您应该在构建系统代码中明确提及其包含和库路径,而不是对它们的位置做出假设。
关于c++ - FreeBSD 上的 CMake 在/usr/local/include 中看不到 GL/gl.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32624212/