我决定将我的 Visual Studio 项目转换为 CMake,以便在多个平台上进行开发。但我想知道如何有效地将版本控制应用于 CMake 项目。
比如说,我从 CMake 项目在 Windows 上生成了一个 Visual Studio 项目,并在 Linux 上设置了一个 make 文件。我不想在提交中包含那些特定于平台的文件。最好的做法是使用 .gitignore
排除所有这些文件吗?
这是我首先想到的,我想知道这样做是否正确。例如,我还可以在我的存储库中包含所有不同平台的项目。
最佳答案
是的,如果您使用 CMake 作为基础项目文件,请务必不要将生成的文件添加到存储库中。它们作为共享的东西实际上是无用的,而且通常是特定于计算机的。
正如评论中所说(来自@Peter,为了更好的可见性,我厚颜无耻地将其复制到此处),在源代码树之外构建通常是个好主意(与 Visual Studio 的默认行为不同)。基本上,你这样做(从源目录)
cd ..
mkdir project-build && cd project-build
cmake ../project
您可以通过 -G
命令行选项告诉 CMake 使用特定的“生成器”。检查其帮助输出以获取详细信息。您也可以通过 CMake 的 GUI 执行此操作。
关于c++ - 如何处理来自不同开发环境的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20385583/