我有一个需要第三方库(开源)的解决方案文件。包含的解决方案使用典型的配置名称“Debug”和“Release”。
第三方拥有DLL和静态库的调试和发布配置 - 它们的名称不是“Debug”和“Release”。
如何告诉解决方案首先构建依赖关系,如何将相关配置与依赖配置相关联?
也就是说,MyProject:Debug
应该构建3rdParty:debug_shared
或3rdParty:debug_static
。
更新:
我不希望从一对多关联。我只想选择一个并坚持下去。所以在我的情况下,我会将主项目中的Debug关联到3rdParty:shared_debug
。
我该怎么做?
当我说为调试解决方案构建时,我也希望构建第三方的东西。
答案 0 :(得分:1)
我认为在构建不同的项目配置之间有一个简单的方法可以让单个解决方案配置切换;如果我理解正确,你想要
mySolution:debug -> myProject:debug, 3rdParty:debug_shared, ...
并在另一个时间点
mySolution:debug -> myProject:debug, 3rdParty:debug_static, ...
您可以手动甚至通过宏在每次构建时更改解决方案的构建配置,但这有点单调乏味吗?
如果您遵循Visual Studio方式,则可以创建额外的解决方案配置,并更改构建配置管理器中的设置,使它们与第三部分配置匹配。
mySolution:debug_shared -> myProject:debug, 3rdParty:debug_shared, ...
mySolution:debug_static -> myProject:debug, 3rdParty:debug_static, ...
这不会以任何方式改变您自己项目的配置,并且在它们之间切换相对容易。
编辑:如果您的项目依赖于此第三方库,那么它是否还需要两个配置?假设您的项目想要使用第三方静态库,那么链接器需要知道它的名称和路径。另一方面,如果要使用DLL,链接器需要知道另一个名称/路径。如何在没有两种配置的情况下在这两者之间切换?在某些时候,你必须指示链接器使用哪个库,所以你最终会得到像
这样的东西mySolution:debug_shared -> myProject:debug_using_shared_3rdparty, 3rdParty:debug_shared, ...
mySolution:debug_static -> myProject:debug_using_static_3rdparty, 3rdParty:debug_static, ...
答案 1 :(得分:1)
在IDE中有“配置管理器”,您可以使用解决方案配置来粘贴项目配置。还有“构建依赖关系”工具来选择首先编译哪个项目。