在Git上使用VS项目的boost

时间:2013-06-14 21:28:50

标签: git boost visual-studio-2012

我几乎没有任何好的请求谷歌找到答案。我有一个Visual Studio(2012)项目,这个项目是在git上版本化的(这个文件版本为*: vcxproj )。我想在项目中使用Boost库,所以我必须为它设置位置,但这种方式会改变 vcxproj ,所以另一个人将不得不为他的电脑更改它等等。如何在不从版本控制中删除此文件的情况下解决此类问题?

*我在这里读到:.vcxproj in source control该文件应该是版本的。

3 个答案:

答案 0 :(得分:0)

在版本控制方案中经常出现此问题:文件的某些部分取决于本地环境,这些部分不应受版本控制。有两种主要方法可以解决这个问题:

  • 假设一致的本地环境

  • 仅将文件的那些部分置于版本控制之下,这些部分独立于本地环境而有效。创建一个脚本,将依赖于本地环境的部分添加到该文件的 unversioned 副本。

我看到了这个特定问题的三种解决方案:

  1. 同意安装Boost的常用位置。由此,“另一个人”将不必修改他的.vcxproj文件副本。

  2. 使用Visual Studio解决方案中的符号链接引用Boost。与1相同的逻辑。

  3. 创建一个复制.vcxproj文件的脚本,并将对Boost的引用添加到该副本。请参阅.vcxproj文件中已复制的.sln文件,但 将其添加到Git中 - 将其添加到.gitignore。这是处理此类问题的最通用方法,但在实践中也难以处理 - 实际上对.vcxproj文件进行修改现在需要额外的工作。

答案 1 :(得分:0)

对于boost,我将它直接添加到我的全局include / libraries路径中。对于此方法,请转到属性管理器窗口,然后展开任何C ++项目并选择Microsoft.Cpp.XXX.user并选择属性。这将为您提供一个项目属性表,该属性表适用于您帐户中该平台的所有项目。在此工作表中,您可以修改VC ++目录选项卡以添加适当的路径。

对于较少的“全局”库,我指定一个已知目录来保存属性表,其中包含使用特定库的其他编译器设置。这些将保存包含和库路径,但也可以具有其他设置,如定义和链接器输入。我个人使用'C:\ SDKs'作为指定目录。所以我可能会有'C:\ SDKs \ DirectX11-x86.props'之类的东西。这种方法最大限度地减少了需要硬编码的内容,并且允许比仅包含/库路径更多的选项。一个警告:你必须确保路径是绝对的,视觉工作室喜欢使它们相对。

答案 2 :(得分:0)

一种选择是在代码树中包含boost,这样就不会在机器上安装boost的外部依赖,这也会降低设置开发机器的要求。

由于boost是开源的并且可以在GitHub上使用(https://github.com/boostorg),因此您应该可以使用git submodules进行映射。

另一种选择是使用boost Nuget package