搭邊手游,看opengl superbible, 書中代碼需要一個gltools庫。作者自己提供的code google地址里gltools項目是空的,此一坑。
他的網站(www.starstonesoftware.com)關於opengl的頁面打不開,此二坑。
好不容易github拖到一個,需要用到freeglut和glew。都准備就緒了,編譯出錯,link2001和link2019,均跟glew有關。仔細檢查glew的c++選項和鏈接選項,glew的MT改為MD,此外保證gltools的其他選項與glew相同,編之,不通,但錯誤減少了,此三坑。
此時去編它的靜態庫,通過了。本不想理會了,無奈較勁上了,繼續查。發現gltools的glbatch.h文件里,定義了GLEW_STATIC。故而我們靜態版本通過了,但編動態庫版本對於glew的c方式導出全部少了正確修飾符,GLEWAPI沒被定義為extern __declspec(dllimport)。把該文件的GLEW_STATIC刪除。仍沒通過。此四坑。
然后發現這個cmake生成的gltools工程,另外幾個重要的頭文件沒被直接添加在工程里,故而我全局查找GLEW_STATIC時漏了這幾個文件,而它們全部都定義了這個宏。好在也不多,全部刪除之。此五坑。
仍不通過,剩下的是opengl本身函數的鏈接問題,這你都沒加上,太坑了吧。把opengl鏈接添上,動態庫版本總算好了。此六坑。
然后才發現gltools本身沒加dll修飾符,沒導出類和函數,算我無用功了。原本就是static版本省心,此七坑。
說到底還是跟windows過不去的原因。我人很懶,因此向來不喜歡linux,矛盾的很。
都說這本書比較靠譜,我說這作者們,6,7百頁的書您們都寫了,還到了第五版(英文到六了吧),叫幾個手下幫你做做這項目工程總可以吧。像這類書針對該都是尚不熟悉opengl甚至編程的讀者,其實能有一個方便傻瓜直接跑的工程對他們很重要。估計很多人就卡在上邊沒心情了。