2012-11-11 64 views
3

我最近買了一本關於OpenGL的書,我似乎無法得到它的工作。ld.exe無法找到-lGL

例如,它給我的錯誤:

ld.exe||cannot find -lGL|.

我的編譯器是GNU-GCCMinGW上與IDE Code::Blocks,我的操作系統是Windows 7 64位。我鏈接了以下庫:opengl32,glu32,glut32以及其他鏈接器選項我有:-lmingw32-lSDLmain-lSDL,因爲這是在code::blocks wiki上建議的。

我有一些使用C++的經驗,但在連接和設置編譯器方面沒有任何經驗,因爲這用於相當自動化。

如何解決此錯誤?

+0

你可以用一個問題來解釋這個嗎?你到底想用OpenGL做什麼?你怎麼調用它? 描述性信息越多,人們就越容易幫助你。 – Blaskovicz

回答

4

標誌-lGL是鏈接到opengl庫,但在Windows上,opengl庫被稱爲opengl32,而不是libgl。所以你不應該使用-lGL,如果你已經在opengl32鏈接,那應該是你所需要的。

+0

看來我需要做點什麼。我似乎無法找到我在哪裏使用'lGL',我有這個在我的文件:'的#ifdef _WIN32 的#include #ENDIF 的#include 的#include 的#include 的#include #include #include '但刪除語句'#inlcude '不能解決任何問題,也不會刪除或添加錯誤。 – Wysaard

+0

它不應該與包含有任何關係。無論如何,你確實需要包含GL/gl.h。由於大概您已經檢查過鏈接器標誌,我不知道您會在哪裏檢查,因爲我不熟悉您的構建系統。環顧四周,儘量得到更詳細的輸出就是我所能說的。 – bames53

4

-lGL是* nix系統上使用的鏈接選項。在Windows上,您應該使用-lopengl32

+0

那麼我應該改變什麼?如果我把'-lopengl32'放在我的連接器設置中,不會改變任何東西。我真的不知道該怎麼做。正如我之前所說的,當談到設置我的編譯器時,我並不知道那麼多。 – Wysaard

+0

@ user1816721:那麼,省略-lGL,因爲這在Windows系統上不可用;然而,它可能是,圖書館之一包括錯誤添加一個鏈接'#pragma'拉入libGL.so(-lGL)。 – datenwolf

0

這可能是由於庫和包含文件夾權限設置爲只讀,我目前有相同的問題,但我正在使用我的SFML編譯,我通過將鏈接器設置爲確切的lib文件不是文件夾,你可以嘗試相同的解決方案