【问题标题】:unidentified reference to glutInit对 glutInit 的不明引用
【发布时间】:2017-04-11 13:02:04
【问题描述】:

我试图编译一个基本的 OpenGL 程序,只是一个空白窗口。 我在 Linux Mint 18.1(Ubuntu 16.04 LTS)上使用 CodeLite 和 g++ 编译器。

目前的代码是:

#include <stdio.h>
#include <GL/glew.h>
#include <GL/freeglut.h>

int main(int argc, char **argv)
{
    glutInit(&argc, argv);

    printf("hello world\n");
    return 0;
}

起初我的编译器(CodeLite 中的 G++)给出了错误

/home/USER/Projects/CodeLite/Graphical/main.cpp:7: undefined reference to `glutInit'

我从他们各自的网站下载了所有最新的 GLEW 和 GLUT,并将它们解压到 /usr/include/GL,I edited the project settings linker like this.

现在它给出了错误消息:

/usr/bin/ld: cannot find -lglut
Makefile:4: recipe for target 'All' failed

我能做些什么来解决这个问题?

【问题讨论】:

  • 不,你需要安装库,而不仅仅是头文件。
  • @OleksandrKravchuk 除了汤姆在下面给出的答案之外,我该怎么做?

标签: c++ linux opengl glew freeglut


【解决方案1】:

您应该从包管理器安装库:libglew-devfreeglut3-devlibgl1-mesa-devlibglu1-mesa-dev。包含和二进制文件将放置在适当的位置。

如果链接器找不到 .so 文件,请使用 dpkg -L freeglut3-dev 找到它们并在链接器命令行中添加此目录

g++ -L/path/to/libglut.so *.o -o programname

【讨论】:

  • 谢谢,我试过了,它没有安装或升级任何东西,我已经有了。还是不行。
  • 更新了我的帖子。在 Ubuntu 上,库二进制文件转到 PATH 中的 /usr/lib/。尝试安装另外两个软件包。一般来说,安装软件包比手动安装文件要好得多。它更容易更新和维护。
  • @Fons 你编译了这个库吗?
  • 安装包的好处是提供了二进制文件。
  • @Tom 其他 2 个库或完整路径都有帮助,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-02
  • 2014-12-29
  • 2017-02-04
  • 2014-10-12
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 2023-02-03
相关资源
最近更新 更多