2

我我目前的团队,我们组织的依赖于外部库头在这样的项目设置:编译器的组织依赖路径外部库

编译器设置 - >其他包括:
d:\ SRC \ LIB \ boost_1_43
d:\ SRC \ LIB \ CxImage_6_00
...

正如你所看到的,我们包括在我们的路径精确库的版本号。

该方法的advantage是我们总是知道,在当前项目中使用了哪一个库的确切版本。由于项目设置存储在我们的存储库中,因此我们也有这些设置的完整历史记录。如果发生版本变更,负责任的开发人员必须更改项目设置并确保新版本没有问题。

disadvantage我看到,对于每个新版本的库,我们都必须触及每个使用它的项目,并更改路径。 (我们不想用我们的主要产品部署一个库的几个版本)。我可以告诉你,你不会用这种重新模仿的过程结交很多朋友......

你如何在你的中型项目中处理这个问题?
您的体验是否有“最佳实践”?

我特别感兴趣的任何解决方案在windows/visual studio 2008环境中有很多子项目。

感谢您的任何建议!

回答

2

您可以使用property sheets轻松管理常用项目属性。

我的建议是建立像这样有组织的东西用户宏:

$(DependenciesPath) => d:\src\lib\ 
$(BoostPath)   => $(DependenciesPath)boost_1_43\ 
$(CxImagePath)  => $(DependenciesPath)CxImage_6_00\ 

然后,在你的项目属性,你只需要参考$(BoostPath)$(CxImagePath),而不是特定的版本。您可以移动整个依赖关系文件夹,只需更改属性表中的各种宏,即可更改各个依赖关系路径。

+0

我正在使用Visual Studio 2008.该版本中是否有属性表或等价物? – nabulke 2010-09-15 10:56:33

+0

@nabulke:是的。在链接的MSDN页面上,选择顶部的“其他版本”并选择“Visual Studio 2008”。 Visual Studio 2010中的属性表的实现在Visual Studio 2010中发生了显着变化,从VCBuild移植到C++项目的MSBuild,但它们在Visual Studio 2008中受支持。 – 2010-09-15 10:58:36

+0

James,感谢您的回答。我一定会仔细看看这些属性表! – nabulke 2010-09-15 12:42:06