c++ - 为每个操作系统创建单独的项目还是将它们全部混合到一个项目中更好?

标签 c++ cross-platform project-management

为每个操作系统创建单独的项目或将特定于操作系统的代码混合到一个项目中哪个更好?

例如,是继续在 C++ 中使用这些更好,还是完全绕过这些定义,对每个操作系统采用不同的方式,但保持相同的实际最终结果和过程:

#ifdef __WIN32
    // Do Windows stuff
#endif

我觉得管理和重构特定于每个操作系统的代码会容易得多,但它又会更加编译、调试和测试。

最佳答案

当我必须为多个操作系统编写代码时,我会在单独的模块中创建独立于操作系统的代码,并且特定于操作系统的代码在单独的类中处理。

根据您的需要,您还可以查看像 Qt 这样的跨平台库来处理特定于平台的代码。

使用 #ifdef 不是处理此问题的最佳方法,应尽可能避免。创建适当的类来抽象您的需求是可行的方法。

既然你说的是项目,那是另外一个层次。您可以使用 CMake 等工具为各种平台创建构建环境。您可以将特定于平台的类链接到您的代码,而无需更改您的主代码。

关于c++ - 为每个操作系统创建单独的项目还是将它们全部混合到一个项目中更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30016582/

相关文章:

c++ - C++ 中的 Fork() 和 Wait()

c++ - 试图删除 vector 指针重复项。为什么我不能使用 .erase()?

cross-platform - 为多个平台开发应用程序时使用什么语言?

project-management - 最合适的敏捷项目管理工具

c++ - 我无法弄清楚如何在通过循环后将 vector 传递回 main

c++ - 通过引用匿名实例传递时出现意外的编译错误

iphone - 使用 GLKit 进行跨平台开发?

c# - 如何最有效地在 C 和 C#(Mono 和 Silverlight)之间共享代码

project-management - 如何避免与团队负责人发生冲突?

maven - 父 pom 是在其子代的相同 groupid 下还是在其自己/父代下创建的?