我是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.h
,foo::foo()
)和单独的foo.h
头文件(在其中FOO_H_
文件等)。在Xcode中,它会生成一个文件夹Foo
constains main.cpp
和foo.l
) - 就是这样。为什么不同?
我虽然C ++代码只是C ++代码,如果在该平台上编译,它会生成特定于平台的可执行文件。 (例如,在Mac上编译,它成为Mac可执行文件;如果在Windows上编译,它将成为Windows可执行文件)。
看来,一旦我开始使用IDE,由于所有这些我不了解的自动生成的文件,我的C ++代码会自动变得不可移植。我尝试同时阅读XCode,Eclipse和Visual Studio上的文档,这让我更加困惑。我只想写C ++ ......
我也在关注 Stroustrup的经典文本来获取C ++,在本书中,没有提到像.h
或_H_
文件的标题或来源,为什么所有这些文件都已生成。
除了使用Notepad / Textmate + G ++编译器之外,如何在可以跨平台的IDE中编写纯粹的可移植C ++程序,或者甚至可以编写?
答案 0 :(得分:2)
名为Foo
的c ++类的默认(=最常用)文件结构由名为foo.h
的头文件组成,该文件将包含Foo
的类定义,以及{ {1}},其中包含foo.cpp
。
通常所有头文件都放在一个名为Foo
的单独文件夹中。
因此,具有相同文件/文件夹结构的一般方法可以用于多个IDE:
include
中的include
,src
和make
文件夹,IDE的项目文件将进入make,.h文件包含,和.cpp文件到src)答案 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