2017-04-11 21 views
1

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

到目前为止的代码是:

#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; 
} 

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

/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 

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

+0

不,你需要安装库,而不仅仅是头文件。 –

+0

@OleksandrKravchuk除了汤姆给出的答案之外,我会怎么做? – Fons

回答

1

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

如果连接器无法找到.so文件,使用dpkg -L freeglut3-dev的找到他们,并在此目录中的链接器命令行添加

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

谢谢,我试过了,它没有安装或升级任何东西,我已经拥有了它们。仍然不起作用。 – Fons

+0

更新了我的文章。在Ubuntu上,库二进制文件转到PATH中的/ usr/lib /。尝试安装其他两个软件包。通常,手动安装软件包要比文件安装好得多。一般而言,更新和维护更容易。 – Tom

+0

@你是否编译过图书馆? –