多平台C++项目结构

Multi-platform C++ project structure

我实际上需要有关如何构建我的项目(目录树)的帮助。 我计划编写一个分为多个部分的网络库(一个用于服务器,一个用于客户端等)

我实际上是在 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 也这样做。

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

不要在您的项目中包含 IDE 生成的任何文件。让每个开发者选择他们自己的IDE。分发源码的时候把program/library本身相关的文件打包,让每个开发者导入自己喜欢的IDE

您将不得不选择一些跨平台的方式来构建 progs/libs。

Makefile 非常通用。大多数 IDEs 可以 运行 一个来自其 Makefile 的项目。或者您可以使用生成 Makefile.

的众多跨平台构建系统之一

此外,您可能希望将源代码置于版本控制之下,例如 git

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