C++ 对glutInit的未识别引用

C++ 对glutInit的未识别引用,c++,linux,opengl,glew,freeglut,C++,Linux,Opengl,Glew,Freeglut,我试图编译一个基本的OpenGL程序,只是一个空白窗口。 我在LinuxMint18.1(Ubuntu16.04LTS)上使用带有g++编译器的CodeLite 到目前为止,守则是: #include <stdio.h> #include <GL/glew.h> #include <GL/freeglut.h> int main(int argc, char **argv) { glutInit(&argc, argv); prin

我试图编译一个基本的OpenGL程序,只是一个空白窗口。 我在LinuxMint18.1(Ubuntu16.04LTS)上使用带有g++编译器的CodeLite

到目前为止,守则是:

#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;
}
我从各自的网站下载了所有最新的GLEW和GLUT包含,并将它们解压缩到/usr/include/GL

现在,它给出了错误消息:

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

如何修复此问题?

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

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

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

不,你需要安装库,而不仅仅是头文件。@OleksandrKravchuk除了下面Tom给出的答案外,我该怎么做?谢谢,我试过了,它没有安装或升级任何东西,我已经有了。还是不行。更新了我的帖子。在Ubuntu上,库二进制文件转到路径中的/usr/lib/。尝试安装另外两个软件包。一般来说,安装软件包比手动安装文件要好得多。一般来说,它更易于更新和维护。@Fons您编译了库吗?安装包的好处是提供了二进制文件。@Tom其他两个库或完整路径都有帮助,非常感谢!
g++ -L/path/to/libglut.so *.o -o programname