2015-04-04 83 views
1

我实际上需要关于如何构建我的项目(目录树)的帮助。 我打算编码拆分成多个部分的网络库(一个用于服务器,一个用于客户端等)多平台C++项目结构

我实际上是在Windows上编码,但我打算在未来使其成为多平台。

我目前的设置是:

Solution folder 
    - doc   // Doxygen generated documentation 
    - include  // Public headers 
    - lib   // Output libraries 
     - Debug 
     - Release 
    - source  // Private implementation and headers 
    Doxyfile 
    Solution.sln 

我的问题是,我应该在哪里把项目文件中每一个IDE? Visual Studio为每个项目生成多个文件,我不知道我应该在哪里存储它们,因为可能有另一个IDE也会这样做。

回答

0

请勿在项目中包含IDE生成的任何文件。让每个开发者选择他们自己的IDE。在分发源代码时,只需打包与程序/库本身相关的文件,并让每个开发人员将其导入自己喜欢的IDE。你将不得不选择一些跨平台的方式来构建progs/libs。

Makefile非常普遍。大多数IDEs可以从其Makefile运行项目。或者,您可以使用许多可生成Makefile的跨平台构建系统之一。

此外,您可能希望保持您的源代码版本控制,如git

+0

我的问题是关于什么目录应该包含.vcxproj文件。我从来没有使用过Makefile,我甚至不认为VS支持它(它只能导入一个,但它仍然是vcxproj)。我想创建一个构建目录,然后是一个名为msvc14的子文件夹,项目将在那里,是一个很好的设置? – Antony 2015-04-05 11:08:25

+0

@Antony不幸的是VS不是一个多平台的IDE。如果你希望你的项目是多平台的,那么你真的需要使用一个多平台的构建系统。这不会阻止你使用VS和**也**为那些碰巧使用VS的人分发VS项目文件。但其他平台上的人需要他们可以使用的东西。 – Galik 2015-04-05 13:05:59

0

如果您想创建一个跨平台项目,那么只需使用适合该任务的IDE和编程语言即可。例如,您可以使用Eclipse获得C++支持,并获得可以在多个操作系统上运行的项目输出。

0

对于每个平台,不同的代码集将被执行,因此每个平台将具有不同的代码库,否则它将不能编译。解决方案是为平台特定的功能提供单独的文件,并为该平台标记该文件,并维护一个代码库。要在平台上工作,请从存储库中提取平台特定的必需代码。这里是一个例子"Upload XML data to MySQL or NoSQL"