如何开发一个跨平台的C ++项目?

ean*_*ang 5 c++ cross-platform kdevelop cmake visual-studio-2012

我是C ++初学者,现在开始开发我的第一个跨平台C ++项目。我需要使用特定于平台的调用(Win32和POSIX),因此我需要在Windows和Linux中频繁进行编译。

到目前为止,我正在使用的Whit单平台项目是Linux中的KDevelop和Windows中的Visual Studio 2012。

如何在同一个项目的两个不同操作系统中使用两个不同的IDE?

  1. 我应该使用一个跨平台的IDE吗?
  2. 我应该学习CMake(或类似产品)并将其配置为可在两个IDE上同时使用吗?
  3. 我可以/应该将代码托管在网络中并自动与离线项目同步吗?
  4. 备择方案?

在此先感谢大家。

编辑:

只是为了澄清,该项目将是一个用于学术协议的简单服务器。会有一个客户端要求向服务器上载/从服务器检索某些文件。对于学业,我的意思是,例如,我必须使用pthreads / win32线程而不是更高级别的C ++线程库。

Mat*_*son 5

  1. 也许-确实取决于您对什么最满意。由于该项目是非图形项目,因此IDE所提供的只是文件的编辑和编译。因此,您可以在具有IDE的一台计算机上构建项目,然后将源移动到另一台计算机上进行编译。

  2. 我个人只有两个makefile,一个用于Linux,一个用于Widnows。使生活变得相当简单[您可以有一个“外部” makefile,它可以基于某种聪明的方法选择正确的文件]。

  3. 是的,您应该找到一个适用于Windows和Linux的版本控制系统(git,mercurial,subversion,集市和其他几个版本)。这样,您不仅拥有一个中央存储库(您可以将任何一台计算机用作其中任何一个的“服务器”),而且还可以跟踪更改。绝对值得做!

  4. 有数百种不同的选择。但是,您将其保留得越简单,工具越不复杂,您就会有更多的时间花在实际编程项目上,而不是例如弄清楚为什么CMake并没有按照您的期望来构建。

另外,请确保您将所有特定于系统的代码分离到每个体系结构一个文件中。这样,以后很容易移植到另一个体系结构,并且使您的代码的大部分都可以在两个系统上编译。