Social Icons

2015年2月12日 星期四

將C/C++程式從Windows (VS)移植到OSX (Xcode) - Part I

最近為了一些經書撰寫了一版資料結構,一開始在Windows下面寫的,用的是Visual Studio 2005這個環境來編譯。因為當初這個資料結構服務的程式是手持設備,所以當初設計的時候有考量到往後可能有移植的需求,這個環境是使用cmake來建立。

為什麼會使用cmake呢?其實以前在建立公司的環境時曾經使用tmake,可是後來發現tmake已經沒有人在維護,如果以後要支援Android,iOS可能會不適用,新建系統的時候就直接放棄了,評估了一陣子就選擇cmake當成跨平台的發展環境,一直到今天還覺得當初有做這樣的決定。

在cmake環境下,重要的是寫好CMakeLists.txt這個描述檔(詳細內容就不在這邊說明了,請參考cmake的網站),一旦寫好,可以透過cmake產生不同的發展環境的project檔。因為我是使用Visual Studio 2005,簡單指令就可以產生sln檔,然後叫起VS來編譯。

cmake -G "Visual Studio 8 2005" ../src


這些日子為了將App從Android移植到iOS來,所以就買了一台MacBook Pro,就希望以前發展的程式可以在OSX下面編譯並執行。研究了一下,就發現cmake的好,在mac check out程式碼後,同樣用cmake來生成Xcode的project檔,接著啟動 Xcode打開程式檔,就可以進行編譯了。

cmake -G Xcode ../src


但是,在利用Xcode編譯的過程,標頭檔(Header files)似乎不會複製到指定的位置去,所以只能手動完成。

cmake -P cmake_install.cmake



Xcode跑起來的截圖


簡單吧,看起來是很簡單,至少環境的部分是這樣。但是程式碼本身才是重點,下回再講講程式碼本身是如何移植的。

沒有留言:

張貼留言