【问题标题】:Organisation of compiler dependency paths to external libraries对外部库的编译器依赖路径的组织
【发布时间】:2010-09-15 10:41:25
【问题描述】:

在我目前的团队中,我们在项目设置中组织对外部库标头的依赖项,如下所示:

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

如您所见,我们在路径中包含确切的库版本号。

此方法的advantage 是我们始终知道当前项目中使用的库的确切版本。由于项目设置存储在我们的存储库中,我们还拥有这些设置的完整历史记录。如果有版本更改,负责的开发人员必须更改项目设置并确保新版本没有问题。

我看到的最大的disadvantage 是,对于库的每个新版本,我们都必须触及使用它的每个项目,并更改路径。 (我们不想在我们的主要产品中部署一个库的多个版本)。而且我可以说,你不会通过这个重复的过程结交很多朋友......

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

我对具有大量子项目的 windows/visual studio 2008 环境中的任何解决方案特别感兴趣。

感谢您的建议!

【问题讨论】:

    标签: c++ visual-studio visual-studio-2008 visual-c++ visual-c++-2008


    【解决方案1】:

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

    我的建议是设置这样组织的用户宏:

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

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

    【讨论】:

    • 我使用的是 Visual Studio 2008。该版本或同等版本中是否有属性表?
    • @nabulke:是的。在链接的 MSDN 页面上,选择顶部的“其他版本”并选择“Visual Studio 2008”。随着 C++ 项目从 VCBuild 迁移到 MSBuild,Visual Studio 2010 中属性表的实现发生了显着变化,但它们在 Visual Studio 2008 中得到支持。
    • 詹姆斯,感谢您的回答。我一定会仔细看看那些属性表!
    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 2014-09-18
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    相关资源
    最近更新 更多