单个eclipse C ++项目可以针对不同平台以不同方式链接不同的库吗?

时间:2011-11-29 18:39:37

标签: c++ eclipse linker cross-compiling

我有一个C ++ eclipse项目,我想在Windows和OSX中轻松编译。

该项目目前正在使用自动生成的makefile。

我需要的库因平台而异。

在osx中​​,我正在使用CoreMidi,CoreAudio和CoreFoundation框架。 在Windows中,我使用的是winmm.lib和多线程库。

根据当前平台链接不同库/框架的最简单方法是什么?

我目前正在OSX上使用gcc工具链。我应该开始使用交叉编译工具链吗?

我应该有两个项目吗?一个用于在windows中工作,一个用于osx,将它们检入版本控制?

我应该编写自定义makefile而不是使用具有不同g ++参数的自动生成选项,具体取决于平台吗?

3 个答案:

答案 0 :(得分:1)

我个人对一个项目有相同的目标,并得出结论Qt framework对我来说是最好的。它处理多种语言,unicode字符串,XML,网络通信,本机外观用户界面,控制台应用程序:它可以做很多AWILUL。

然而,正如保罗指出的那样,你必须从一开始就计划好它。

Qt很好地抽象平台(在一个名为QtCore的模块中)允许你编写vanilla C ++代码,或者你可以选择包含一些Qt C ++语言扩展,Qt帮助应用程序称为moc(元对象)编译器)从中创建vanilla C ++,然后由大多数常见的C ++编译器编译。

它还有一个非常棒的跨平台makefile生成器,名为qmake,它可以处理项目文件,为其运行的平台创建正常的make文件。

至少Windows XP& 7,目前支持OSX 10.4,10.5,10.6。但请注意,OSX Lion(正在撰写)尚未获得官方支持,但我怀疑它将在下一版本中发布。

答案 1 :(得分:0)

根据您的描述,我不确定您是否可以轻松地跨平台。即使不使用第三方库,您也必须为osx和windows提供单独的代码。大多数时候,他们首先将系统设计为跨平台。将单平台上的现有项目变为跨越一个很难。如果你有跨平台的要求,你最好先用这种方式进行设计,然后从头开始重写。

答案 2 :(得分:0)

尽管Eclipse可以在OS X和Windows上运行良好,但它并不是以这种方式使用的。

最好的方法是为每个平台使用单独的IDE项目。这是为多个平台提供独特编译设置的最简单方法。

是的,你可以使用两个eclipse项目。或者,为OSX提供X-Code项目,为MS Windows提供Visual Studio项目并不罕见。