2015-04-01 70 views
0

我決定使用GLEW來處理擴展,而不是請求核心配置文件,並且必須遷移我的代碼。無法連接OpenGL兼容性配置文件(EXT符號未被識別)

我想通過EXT配置文件添加對FBO's的支持作爲第一步。

問題是gcc不會鏈接我的代碼(OSX 10.10),它不能識別任何gl*EXT()函數。例如,glBindFrameBufferEXT()

標誌爲未定義的符號。 (glBindFrameBuffer()也無法識別 ...)

我對鏈接和GLEW使用GLEXT或GLFW與相容性分佈都試過了,但沒有任何作品!我錯過了一個圖書館嗎?我如何告訴gcc使用正確的GL配置文件?我是否有義務遷移到核心配置文件?

回答

0

在MacOS X中GLEW並沒有做太多的工作,因爲在MacOS X上沒有太多的OpenGL擴展,並且由於OpenGL集成在MacOS X中,可用框架支持的OpenGL版本的所有功能都是立即的可用

...如果您使用Mac OS X的OpenGL實施不支持的擴展功能,

MacOS X是OpenGL系列中的奇怪小鴨:OpenGL在操作系統的核心圖形例程中使用率很低,因此OpenGL得到了OS的很好的支持。但是它的內置操作系統非常深,幾乎無需更新整個操作系統即可更新。

解決方案:請勿使用該擴展名。 FBO已經與OpenGL-3.3一起推出,因此您必須創建3.3核心配置文件上下文,並且可以直接使用這些函數(不包括... EXT)。

+0

感謝您的好評!有沒有辦法使用GL3.3 api進行編譯(例如可以訪問glGenFramebuffers()),但是尚未遷移到核心配置文件?我仍然在使用一些固定管道功能來簡化和簡化,現在不需要GLSL版本gt 120。如果可能的話,我如何告訴gcc正確鏈接我的項目?謝謝一堆! – 2015-04-01 13:17:05

+0

@DanK:在MacOS X(和alsa Mesa的BTW)中,不幸的是(對於你)不支持OpenGL實現兼容性配置文件。這意味着:如果你需要OpenGL-3的功能,比如FBO,你別無選擇,只能使用完整的OpenGL-3並遺留遺留功能。 – datenwolf 2015-04-01 17:23:33

+0

謝謝。解決了它!我會計劃這一舉措。 – 2015-04-02 02:44:48

相關問題