如何编写在IDE之间工作的C ++代码?

时间:2012-05-14 09:34:37

标签: c++ xcode eclipse cross-platform

我是C#.NET和Visual Studio背景(以及一些Objective-C / XCode)的 C ++ 的新手。

我想用C ++编写跨平台(Windows,OS X,Linux)应用程序。我从Mac上的TextMate和Windows上的记事本开始,在命令行/终端上使用g ++编译代码,在其平台上构建可执行文件。

当我开始使用IDE(即 VC ++ XCode Eclipse )时,我感到困惑。在将代码粘贴到其中之前,我尝试了所有三个并创建了项目。如果我在一个IDE中开始编辑,我不知道如何在不同的平台上编译最终的代码片段。

例如,如果我有一个类文件 - foo.cpp。在Eclipse中,它将生成foo.cpp(在其中foo.hfoo::foo())和单独的foo.h头文件(在其中FOO_H_文件等)。在Xcode中,它会生成一个文件夹Foo constains main.cppfoo.l) - 就是这样。为什么不同?

我虽然C ++代码只是C ++代码,如果在该平台上编译,它会生成特定于平台的可执行文件。 (例如,在Mac上编译,它成为Mac可执行文件;如果在Windows上编译,它将成为Windows可执行文件)。

看来,一旦我开始使用IDE,由于所有这些我不了解的自动生成的文件,我的C ++代码会自动变得不可移植。我尝试同时阅读XCode,Eclipse和Visual Studio上的文档,这让我更加困惑。我只想写C ++ ......

我也在关注 Stroustrup的经典文本来获取C ++,在本书中,没有提到像.h_H_文件的标题或来源,为什么所有这些文件都已生成。

除了使用Notepad / Textmate + G ++编译器之外,如何在可以跨平台的IDE中编写纯粹的可移植C ++程序,或者甚至可以编写?

3 个答案:

答案 0 :(得分:2)

名为Foo的c ++类的默认(=最常用)文件结构由名为foo.h的头文件组成,该文件将包含Foo的类定义,以及{ {1}},其中包含foo.cpp

方法的定义

通常所有头文件都放在一个名为Foo的单独文件夹中。

因此,具有相同文件/文件夹结构的一般方法可以用于多个IDE:

  • 手动创建文件夹结构(例如项目文件夹include中的includesrcmake文件夹,IDE的项目文件将进入make,.h文件包含,和.cpp文件到src)
  • 使用资源管理器/ finder /...手动为您的类创建.h和.cpp文件。
  • 使用“添加现有文件”或类似的东西将这些文件添加到IDE的项目文件中。
  • 正如Rup指出的那样,对于Visual Studio,应该使用“空项目”预设,否则它会添加一些你不想要的头文件

答案 1 :(得分:1)

使用CMake或其他元构建系统 使用Boost和Qt尽可能多地抽象出平台。

CMake允许您为大多数IDE生成项目文件:这意味着在平台和IDE之间切换时:您只需告诉CMake为您在该平台上使用的IDE生成新的项目文件。

最容易在Windows上获得与平台相关的代码,linux和mac是使用QtCreator作为IDE,它还有很多很好的教程。 http://qt.nokia.com/downloads

答案 2 :(得分:1)

为什么不为所有人使用1个IDE? Eclipse是跨平台IDE