2012-12-10 104 views
4

我正在使用eclipse創建一個原生的android項目。它使用了opengl es 1.1。glext.h函數無法解析

我在使用「glext.h」中定義的函數時遇到問題。我可以使用在「glext.h」中定義的宏,但是當我嘗試使用在「glext.h」中定義的任何函數時,它說它無法解析該函數​​。

我知道glext.h已被棄用,但我正在跟着一本書,我希望得到這個工作。我使用書籍源代碼,並有同樣的問題。

我該怎麼做才能使用glext.h中定義的函數?

+0

我忘了提及我使用Windows 7 64位 – iedoc

回答

2

當您包含頭文件時,只會得到該頭文件中的內容。在你的情況下,你得到了完全包含在頭文件中的宏和函數聲明。那些聲明函數存在,它不是實際的代碼,它是函數定義。

要訪問實際功能(定義),您需要鏈接到庫。未解決的函數錯誤意味着編譯器知道函數存在,但鏈接器不知道在哪裏找到它。

我認爲你的解決方案可能只是鏈接OpenGL ES 1.x庫。爲此,請檢查您的Android.mk文件,並確保設置爲LOCAL_LDLIBS的行包括-lGLESv1_CM。像這樣:

LOCAL_LDLIBS := -llog -ldl -lGLESv1_CM 

鏈接記錄器,動態鏈接器和OpenGL ES 1.x庫。

我從here收到我的信息。我無法在Google網站上找到正規來源。

+0

感謝您的回覆,這就是我認爲,很好的解釋雖然,但它不是問題。我鏈接到庫,我能夠使用gl.h中定義的函數,而不是glext.h。它超越了我的想法,即glext.h被棄用,所以它的函數甚至沒有被編譯到實際的api中,但我真的不認爲是這種情況。我在android.mk文件中的實際行是: 'LOCAL_LDLIBS:= -landroid -llog -lEGL -lGLESv1_CM -lOpenSLES' – iedoc

+0

在時間到了之後,我會給你50個代表,因爲這正好回答了這個問題,儘管,這不能解決我的機器上的問題,所以如果你或其他人有任何其他建議,我仍然在尋找解決方案 – iedoc