2017-04-11 51 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

@你是否編譯過圖書館? –