【问题标题】:Compiling C++/OpenGL in FreeBSD在 FreeBSD 中编译 C++/OpenGL
【发布时间】:2015-09-27 22:10:26
【问题描述】:

我正在尝试在 FreeBSD-10.2-RELEASE 中编译一些 C++/OpenGL 源代码。 具体来说,我按照以下说明进行操作:

http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/#Building_on_Linux

在第 6 步中,我收到一条错误消息:

In file included from /home/(my username)/Downloads/OpenGL-tutorial_v0014_33/external/glew-1.9.0/src/glew.c:32:
/home/(my username)/Downloads/OpenGL-tutorial_v0014_33/external/glew-1.9.0/include/GL/glew.h:1180:14: fatal error: 
      'GL/glu.h' file not found
#    include <GL/glu.h>
             ^
1 error generated.
*** Error code 1

Stop.

我安装了一些包,例如 graphics/glew、graphics/glfw、math/glm、graphics/libGL、graphics/libGLU 等,但仍然失败。

我应该怎么做才能让它们工作? 谢谢。

【问题讨论】:

  • 查看传递给编译器的-I&lt;path&gt; 选项并检查是否存在一个&lt;path&gt; 使得&lt;path&gt;/GL/glu.h 存在。否则,请检查 GL/glu.h 是否可以在编译器的标准包含目录中找到。
  • @RenaudPacalet 好的,我试试看。谢谢!

标签: c++ opengl makefile freebsd


【解决方案1】:

在 FreeBSD 中,OpenGL 包含位于 /usr/local/include,因此您需要 -I/usr/local/include 标志。

要使教程链接正确,您还需要替换

set(ALL_LIBS
    ${OPENGL_LIBRARY}
    GLFW_303
    GLEW_190
)

set(ALL_LIBS
    ${OPENGL_LIBRARY}
    glfw3
    GLEW
)

请注意,您似乎使用的是旧库中的标头,这可能会导致更多问题。

【讨论】:

  • 我添加了诸如 -I/usr/local/include、-I/usr/local/include/GLFW 等标志,但出现一些错误:/tmp/tutorial15-9e4549.o: In函数main': tutorial15.cpp:(.text+0x1f): undefined reference to glfwInit' (...等等...) c++: 错误: 链接器命令失败,退出代码为 1 (使用 -v 查看调用) 我可以提供更多建议吗?谢谢。
猜你喜欢
  • 2012-02-24
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多