c++ - 如何处理来自不同开发环境的提交?

标签 c++ git cmake cross-platform project

我决定将我的 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/

相关文章:

ios - 带有 iOS 工具链的 CMake : Can't Find Threads

C++ 指向不同数组的指针

c++ - clang 上的静态 constexpr undefined reference 错误

c++ - 简单的编译器问题

Git:使用 rebase 应用主题分支(不 merge )

c++ - 为什么找不到这些符号?

C++:将 std::string 转换为 UINT64

mysqldumper : Dumping each table separately

git - 在新的 git 存储库上重播提交的最简单方法

c++ - Linux上raylib安装的问题