2010-04-05 46 views

回答

1

可能像CodeBlocks

+0

這正是我所期待的。謝謝。我知道一些較舊的產品也用於這樣做,但我不認爲它們已經存在了。 – infocyde 2010-04-05 16:50:59

1

我聽說這是可能的。你的編譯器需要支持這個。我知道的唯一一個是GCC,但它顯然需要一個特殊的配置。但是,我從來沒有使用過這個功能。我只看到它存在。

你所尋找的被稱爲 「Cross Compiling

+0

感謝您花時間回答。 – infocyde 2010-04-05 16:51:55

2

這是通過一些機制實現的,其中最突出的是構建系統和某些系統的特定版本的代碼。你所做的就是編寫你的代碼,如果它需要一個操作系統API,它就會調用一個特定的函數。舉例來說,我可能會使用MyThreadFunction()。現在,當我在Linux下構建時,我得到了這個MyThreadFunction()的linux特定版本,它調用pthread_create(),而Windows版本調用CreateThread()。這些特定的平臺文件中也包含相應的內容。

要做的另一件事是使用庫提供跨平臺的一致的接口。 wxWidgets就是用於編寫桌面應用程序的平臺之一,Qt和GTK +也是如此。任何你使用它的庫都值得嘗試找到一個跨平臺的實現。這裏有人會毫無疑問地提到Boost。我知道的另一個系統是Apache Portable Runtime(APR),它提供了一系列的東西來允許httpd在Windows/Linux/Mac上運行。

這樣,您的核心代碼庫就是與平臺無關的 - 您的構建系統包含系統特定位和您的代碼庫將它們鏈接在一起。

現在,你可以從一個桌面做到這一點嗎?我知道你可以從Linux編譯Windows,也可以從Linux編譯Mac OS X,但是我懷疑你是否可以從Windows-Linux開始編譯。無論如何,您需要測試您在每個平臺上構建的內容,因此我的建議是運行虛擬機(請參閱vmware/virtualbox)。

最後,編輯/環境:使用任何適合你的東西。我在Linux上使用Eclipse/GVim,在Windows上使用Visual Studio - VS是我的「Windows構建系統」。

+0

感謝您花時間回答,這裏有一些有用的信息。 – infocyde 2010-04-05 16:51:24

1

Qt是一個很好的C++庫/ API /框架,Qt Creator是一個非常令人愉快的IDE。