我希望拥有不同的项目依赖项,具体取决于我当前正在构建的项目配置。
例如,我不想在Release配置中构建和链接SomeTestLib.vcproj,但我想在Debug中构建并链接到它。
一种解决方案,即sorta的工作原理,是使用条件编译宏:
#ifdef DEBUG
#pragma comment( lib, "SomeTestLib" )
#endif
但在这种情况下,调试器和IntelliSense不适用于SomeTestLib
是否有我可以使用的.sln或.vcproj hack?
谢谢。
答案 0 :(得分:7)
在搜索Google几天之后,我终于放弃了找到这个问题的解决方案并且让一个VS开发人员感到震惊,他给了我这个问题的解决方法(实际上,我自己尝试了很多不同的东西来找到这个)
显然,IDE不够智能,无法确定您是否在给定配置下禁用了特定库的构建,并且未将该项目的输出添加到依赖于它的项目的链接器命令行。我相信你已经意识到了这一点。
但是,由于它只是将库项目的输出行粘贴到依赖项目的命令行中,因此将输出行设置为“”将导致NOTHING被添加到依赖项目的链接器命令行中!
希望将来在Visual Studio中解决此问题。我保持乐观,因为它是我最喜欢的IDE,我总是对它支持的功能印象深刻。但是,我见过的一些VS帮助线程说这个bug是“按设计”的,所以也许他们不会修复它。但是,这似乎很容易做到。
无论如何,总结一下:
请注意,如果您构建或清除已禁用的库项目,此解决方法将为您提供错误。如果您只是构建解决方案,那么将禁用已禁用的配置,因此您不会收到错误。
希望这有帮助!
丹尼尔
答案 1 :(得分:3)
可以关闭依赖项目中的链接器/常规/链接库依赖项属性,并将库放在相关配置中的链接器输入中。
它使项目引用不那么有用,但是可行。
答案 2 :(得分:1)
在项目属性中将配置类型设置为Utility而不是application / library - >一般..
答案 3 :(得分:0)
在visual studio中,每个构建配置都会为项目保留自己的属性列表。只需将您的lib添加到您想要的任何构建配置。只是不要添加到“所有配置”
答案 4 :(得分:0)
右键单击您的解决方案并选择属性。解决方案属性页面将显示..
在右页中选择配置属性>>>配置
在这里,您可以通过选中标记为Build的复选框来选择Debug,Release和All构建类型的构建配置。
答案 5 :(得分:0)
在主项目中,转到配置属性 - >链接器 - >输入,在标题为“忽略特定库”的部分中添加您想要标记的库,例如:.lib。除了忽略不同的lib / dll之外,对其他配置再次执行此操作。
最后,如果您不希望每个项目构建两个配置,请右键单击解决方案 - >项目依赖关系 - > [选择主要/顶级项目] - >取消选中您不想构建/忽略的项目。
此方法的优点是,如果需要,您仍然可以手动构建每个项目,但可以切换配置并仅构建/使用所需的lib / dll。