2011-11-29 89 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(截至撰写)尚未正式支持,但我怀疑它将在下一个版本中发布。

相关问题