想打算搞一款屬於本身的遊戲,若是本身手寫的話,還真沒有那個實力,由於不單單是程序的技術實現,框架實現,還有數值系統,本身的功力尚淺,因此就拿別人的東西來試試手。而後本身就選擇了一款比較早的開源遊戲,M.A.R.S(有興趣的童鞋能夠本身百度)。linux
別看老外程序員的工資蠻高的,其實沒必要國內的生存環境好多少,他們的高收入上面對軟件以及互聯網的各類收費不比低收入的國內程序員強多少(國內各類破解,盜版等等啦)。對於操做系統便是如此,老外熱衷於linux,在國內看來,linux博大精深,搞linux的都是大神,哈哈,這實際上是種誤解,linux在服務器上的應用確實強大,可是別的地方特別是家用的,linux沒什麼優點,那些老外搞得linux上的各類辦公軟件只能證實他們就是屌絲,用不起windows,(畢竟2000塊錢呢),而咱們就不同了,咱們能夠用各類註冊和破解。因此老外的開源項目linux平臺上的實際上是蠻多的。話所回來,這款遊戲雖然能跨平臺,可是做者只給了linux的支持,而我須要把他改爲windows版本。程序員
那麼linux遷移到windows平臺上通常會遇到哪些問題呢?windows
1.編譯器不同(GNC和vs平臺的差別,包括語法,包括支持庫的不一樣)服務器
2.項目的配置。框架
固然我這裏還好,沒有遇到那麼多的問題,遊戲項目還算工整,我就把在luban的那種項目配置方式拿過來用了,而後把代碼 頭文件,lib文件都分開放入各自的目錄中,而後依賴項sfml放好。而taglib,fribidi兩個庫沒有windows版本,這兩個庫分別是用做播放聲音和編碼轉換用的,分析遊戲框架便可知道,這兩個東西只在文件加載和播放聲音的地方試用了下,這裏打算替換爲本身的。函數
3.就是編譯時目前只支持多字節,不支持unicode.而後就是配置的時候須要加入宏定義。 有:_USE_MATH_DEFINES,__WIN32__,WIN32。編碼
其中替換fribidi的時候,文件編碼的轉換,遇到了很大的一個坑,還有就是分析函數的做用那裏遇到了一些問題,最好才定位明白。操作系統
在這裏須要具有一些能力:code
1.函數的準肯定位功能。遊戲
2.分析代碼,須要分析一些宏是否要加好。
3.模塊之間的依賴關係。
4.代碼錯誤以後的,定位分析能力。