【发布时间】:2019-11-15 09:39:22
【问题描述】:
我想使用 VisualStudio 2019 启动一个跨平台 C++ 项目。 经过一番研究,我发现了两种可能的方法:
CMake
Tutorial: Create C++ cross-platform projects in Visual Studio
Create and configure a Linux CMake project
CMake 对于跨平台项目来说很常见,但我并没有做太多,感觉你需要付出很多努力才能让它按照你的意愿运行。但是您有大量的可能性来配置它。 ThisSO questions也推荐CMake,不过说还有其他方法。
VS 共享项目
Shared Project : An Impressive Feature of Visual Studio 2015
Cross-platform code sharing with Visual C++
如果您在 VS 中使用跨平台代码共享,您的解决方案中有多个项目(每个平台一个)和至少一个共享项目,其中包括您的源文件 + 头文件。平台特定项目包括所有配置设置和程序入口点。可以从每个项目中使用共享代码,就好像它在项目中一样。 所有的配置都可以在 VS 中进行。它看起来不那么复杂,但可能性有限。
问题
这两种方式看起来都适合我的需求,但我还没有找到它们之间的比较。我已经为它们编写了运行示例,但是那些小的代码库并没有给我我需要的洞察力。
这两种方式的优缺点是什么?考虑构建速度、灵活性、学习/掌握/上市时间、VS 功能支持、单元测试、持续集成等属性...
【问题讨论】:
-
我建议不要依赖 IDE!如果您不能或不想再使用 Visual Studio,会发生什么?然后您的所有编译配置都必须转换为其他配置。使用 CMake 时,您可以使用任何所需的 IDE,并在终端上有一个“简单”的工具,您可以在脚本中使用它进行测试等。使用 CMake 构建 Qt 应用程序对我来说要快得多(因为 qt 编译...) ,然后使用“本机”视觉工作室(有时 800%),但我从未尝试过共享项目。
-
我不知道你问的区别,但似乎你可以试试 Visual Studio Code,它也是开始跨平台开发的好方法,而且看起来不那么复杂。
-
@RoQuOTriX 在我们的开发部门,每个人都拥有并使用 VS,所以这不是问题。另一方面,构建速度更为重要。
-
@izlin 是的,你现在正在使用它。但时代在变。我真的会将我的 IDE 与代码管理分开
-
"这两种方式的优缺点是什么?" - 这类问题通常不适合 Stack Overflow,因为它不是一个讨论论坛。诸如“学习/掌握/市场的时间”之类的东西很难客观。您建议的大多数其他属性也是如此。
标签: c++ visual-studio cmake cross-platform