2014-07-19 23 views
3

我開始學習OpenGL和Redbook 4.3版,我需要一些鏈接幫助(我認爲)。我正在運行Linux Mint和Radeon HD 5000/6000/7350/8350系列視頻卡。我試圖編譯並鏈接第一個程序(triangles.cpp)。我安裝了freeglut3,freeglut3-dev,libxi-dev,glew-utilslibglew-dev。我在舊版本的OpenGL Superbible中發現了這個鏈接命令,我猜我需要添加-lGLEW。編譯第一個OpenGL紅皮書程序(triangles.cpp)

g++ triangles.cpp -lX11 -lXi -lglut -lGL -lGLU -lGLEW 

我得到以下錯誤:

/tmp/ccXSL2nx.o: In function `init()': 
triangles.cpp:(.text+0x11d): undefined reference to `LoadShaders' 
collect2: error: ld returned 1 exit status 

我複製過來vgl.hLoadShaders.hLoadShaders.cpp從紅皮書的源代碼下載。我還有什麼遺漏?

+1

您還需要編譯和鏈接LoadShaders.cpp – paulm

回答

0

試試這個:

g++ triangles.cpp LoadShaders.cpp -lX11 -lXi -lGL -lGLU -lGLEW -lglut -o triangles 

這將編譯和鏈接都triangles.cppLoadShaders.cpp成一個單一的輸出文件triangles

請注意,您可能不需要「-lX11 -lXi」。要測試此嘗試:

g++ triangles.cpp LoadShaders.cpp -lGL -lGLU -lGLEW -lglut -o triangles 

另請注意,the order of libraries is important

+0

如果庫的順序很重要,這看起來不太好。您通常首先需要更高級別的庫,以便鏈接器在鏈接這些較低級別的庫之前查看其對較低級別庫的引用。所以順序應該大部分是相反的。 –