如何解决LNK1209

时间:2019-02-04 12:47:04

标签: c++ linker visual-studio-2017

我们有一个本地git存储库,其中包含多个项目和解决方案。一种解决方案是将我们拥有的所有其他项目合并在一起,以使开发人员可以轻松更改代码库并运行所有单元测试。

我们有一个增量回归测试,用于构建此单元测试项目并在本地运行单元测试。但是,如果在单元测试项目之外构建了项目中特定模块的解决方案,并且单元测试项目运行,则有时会发生LNK1209错误: "LINK : fatal error LNK1209: program database '<file>' differs from previous link; relink or rebuild [<project>]".

这真令人讨厌,因为尽管在重新链接上运行得很好,但是回归测试可能会由于该错误而失败。

使用Visual Studio 2017(15.9.5),尽管更新之前的先前版本显示了此行为。

是否有解决此问题的设置,可能会自动重试链接?

1 个答案:

答案 0 :(得分:0)

应该没有这样的问题。确保不同的配置不会将可交付成果和中间文件写入同一文件夹。

为使构建重新启动更好,这是一种解决方法,我可以建议将测试解决方案的输出/中间文件存储在与外部构建不同的目录中,这可以通过创建额外的测试配置并确保这些配置具有不同的配置来完成。目标文件夹。