C++ 组织项目依赖关系
我和一个相当大的团队在一起,我们在依赖的其他库中遇到了问题,每个库都有相同的项目文件 问题是很多人都有同一个库的多个版本(例如项目用户boost 1.36,我使用boost 1.39来处理我的一些其他东西),每个开发人员在不同的地方都有这些版本(例如我使用C:\lib\C++\boost\u 1\u 36) 因此,现在所有的开发人员都必须为每个项目添加相当多的条目“附加包含目录”和“附加库目录”,这是一种痛苦,尤其是在试图正确设置新成员时(例如,确保每个配置都链接了正确的静态/动态依赖项,而大多数库对所有.lib和.dll文件都使用通用名称,而不是像boost那样使用反映配置和自动链接的文件名)C++ 组织项目依赖关系,c++,visual-studio,visual-studio-2008,visual-c++,dependencies,C++,Visual Studio,Visual Studio 2008,Visual C++,Dependencies,我和一个相当大的团队在一起,我们在依赖的其他库中遇到了问题,每个库都有相同的项目文件 问题是很多人都有同一个库的多个版本(例如项目用户boost 1.36,我使用boost 1.39来处理我的一些其他东西),每个开发人员在不同的地方都有这些版本(例如我使用C:\lib\C++\boost\u 1\u 36) 因此,现在所有的开发人员都必须为每个项目添加相当多的条目“附加包含目录”和“附加库目录”,这是一种痛苦,尤其是在试图正确设置新成员时(例如,确保每个配置都链接了正确的静态/动态依赖项,而大多
我想在项目属性中使用宏,在“附加包含目录”中使用“$(MYSQL\U HOME)\lib\opt”之类的内容,但是我看不到一种方法来定义我自己的宏(如MYSQL\U HOME))可以用来帮助管理依赖项和其他常见项目设置。属性表还允许您定义,这是定义自己的宏(如
MYSQL\u HOME
所需的操作,您可以使用这些宏来帮助管理依赖项和其他常见项目设置。属性表还允许您定义,这是定义自己的宏(如MYSQL\u HOME
有些人可能会建议使用“解决方案构建环境”插件)所需的操作。我建议您不要使用该选项,而是使用属性表,正如詹姆斯所说。避免解决方案生成环境的原因:
.vcproj
文件中的实际设置都是空的。我在属性表中定义所有设置,然后单个项目只需要定义它们继承的属性表。因为解决方案构建环境只定义环境变量(“宏”,MS称之为宏),所以项目文件仍然会充斥着设置,即使它们都只是引用那些环境变量。真是一团糟有些人可能会建议使用插件“解决方案构建环境”。我建议您不要使用该选项,而是使用属性表,正如詹姆斯所说。避免解决方案生成环境的原因:
.vcproj
文件中的实际设置都是空的。我在属性表中定义所有设置,然后单个项目只需要定义它们继承的属性表。因为解决方案构建环境只定义环境变量(“宏”,MS称之为宏),所以项目文件仍然会充斥着设置,即使它们都只是引用那些环境变量。真是一团糟除了像
BOOST\u DIR
和其他环境变量之外,您还应该努力统一所有开发人员使用的环境。这使得设置自动构建、新工作站和启动新的开发人员变得更容易。除了有BOOST\u DIR
等环境变量外,还应该努力统一所有开发人员使用的环境。这使得设置自动化构建、新工作站和启动新开发人员变得更加容易。