2011-11-29 123 views
1

我有一個C++ eclipse項目,我想在Windows和OSX中輕鬆編譯。單個eclipse C++項目可以針對不同的平臺以不同的方式鏈接不同的庫嗎?

該項目目前正在使用自動生成的生成文件。

我需要的庫因平臺而異。

在osx中​​,我使用了CoreMidi,CoreAudio和CoreFoundation框架。 在Windows中,我使用了winmm.lib和多線程庫。

取決於當前平臺,鏈接不同庫/框架的最簡單方法是什麼?

我目前在OSX上使用gcc toolchain。我應該開始使用交叉編譯工具鏈嗎?

我應該有兩個項目。一個用於在windows中工作,另一個用於osx,檢查它們是否都是版本控制?

我應該編寫一個自定義生成文件,而不是使用具有不同g ++參數的自動生成選項,具體取決於平臺嗎?

回答

0

即使Eclipse在OS X和Windows上都可以正常運行,但它並不旨在用於這種方式。

最好的方法是爲每個平臺使用單獨的IDE項目。這是爲多個平臺提供獨特編譯設置的最簡單方法。

是的,你可以使用兩個eclipse項目。或者,爲OSX提供X-Code項目併爲MS Windows提供Visual Studio項目並不罕見。

0

根據您的描述,我不確定您可以輕鬆地使其跨平臺。即使不使用第三方庫,也必須爲osx和windows提供單獨的代碼。大多數時候,他們首先將系統設計爲跨平臺。要在單一平臺上構建一個跨平臺的項目非常困難。如果你有跨平臺的需求,你最好先設計並從頭開始重寫。

+0

我現在剛剛開始研究這個項目,所以現在還沒有太晚「從頭開始重寫」 - 我是否需要將平臺相關代碼抽象爲特定於平臺的庫?也許我應該將問題重新提到「如何在不同平臺上鍊接不同的庫」 –

1

我個人對一個項目有着同樣的目標,並得出結論Qt framework對我來說是最好的。它處理多種語言,unicode字符串,XML,網絡通信,本地用戶界面,控制檯應用程序:它可以做很多事情。

但是,正如Paul指出的,你必須從一開始就規劃它。 (QtCore模塊)允許你編寫vanilla C++代碼,或者你可以選擇包含一些Qt C++語言擴展,Qt幫助器應用程序稱爲moc(meta對象編譯器)創建了vanilla C++,然後可以通過大多數常見的C++編譯器進行編譯。

它還有一個漂亮的跨平臺makefile生成器,名爲qmake,它可以在項目文件上工作,爲運行的平臺創建正常的make文件。

至少在我頭頂上Windows XP & 7,目前支持OSX 10.4,10.5,10.6。但請注意,OSX Lion(截至撰寫)尚未正式支持,但我懷疑它將在下一個版本中發佈。

相關問題