2

I could hardly type any good request to google to find an answer. I have a project with Visual Studio (2012) and this project is versioned on git (this file is versioned * : vcxproj). I'd like to use Boost library in the project, so I have to set the location for it, but this manner will change the vcxproj, so the other guy will have to change it for his pc and so on. How to solve such problem without removing this file from versioning?

*I have read here: .vcxproj in source control that the file should be versiond.

4

3 回答 3

0

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

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

于 2013-07-09T00:23:12.637 回答
0

这个问题在版本控制场景中经常出现:文件的某些部分依赖于本地环境,这些部分不应该在版本控制之下。有两种主要的处理方法:

  • 假设一致的本地环境

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

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

  1. 同意安装 Boost 的通用位置。这样,“另一个人”就不必修改他的.vcxproj文件副本。

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

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

于 2013-06-14T22:53:46.857 回答
0

一种选择是在你的代码树中包含 boost,这样就没有外部依赖于机器上安装的 boost,这也将减少设置开发机器的要求。

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

另一种选择是使用boost Nuget 包

于 2015-12-29T18:39:28.720 回答