使用Linux上的OpenGL的大多數應用程序(和庫)在運行時使用dlopen
API加載libGL.so
,而不是動態鏈接它。Linux上的OpenGL:dlopen libGL.so
他們爲什麼這樣做?
我能想象的唯一原因是,這是因爲任何圖形驅動程序供應商都提供了不同的libGL
,而且兩個不同的libGL
可能與ABI不兼容。 (哼,爲什麼它們應該是ABI不兼容的?即使它們是,爲什麼通過dlopen
加載它們可以解決這個問題?)
無論如何,假設有這樣一個很好的理由,我想做也是如此。有沒有人有鏈接到一個開源的C/C++代碼,通過dlopen
加載所有的OpenGL函數,我可以包含到我的項目,而無需太多的調整?
「*大多數使用Linux上的OpenGL的應用程序(和庫)在運行時使用dlopen *加載libGL.so」,該語句並非全部如此,特別是對於開放源代碼的僅限GL的遊戲。 – user502515 2010-11-25 23:12:10