【问题标题】:C1047 The object or library file '' was created by a different version of the compilerC1047 对象或库文件 '' 是由不同版本的编译器创建的
【发布时间】:2022-01-07 21:23:44
【问题描述】:

我正在将 VC++ 项目从 VisualStudio2015 迁移到 VisualStudio2019。

其中一个项目报告以下错误,

错误 C1047 对象或库文件 '库路径' 是由不同版本的编译器创建的,而不是其他对象,例如 '对象文件路径';使用相同的编译器重建所有对象和库。

我尝试重建所有项目并使用现有的编译器目标文件。但是问题没有解决。

谁能给出解决这个问题的方法?

【问题讨论】:

  • 错误消息应该告诉您哪些组件需要更新。使用资源管理器手动删除所有目标(例如 exe、lib、dll ...)和中间体(例如 obj)。现在检查是否有任何预构建(或第 3 方)组件,因为在构建之前这些组件需要更新。关闭并重新打开解决方案,然后进行完全重建。
  • 我试过这个项目有很多目标文件。如果我更改目标文件,它会报告另一个具有相同错误代码的目标文件。它在不断地进行。有没有办法解决这个问题?
  • 您是否删除了我上面列出的所有项目(并检查任何预建项目)?如果解决方案包含多个项目,则检查每个项目是否使用相同的工具链。
  • 闻起来像是这些 .obj 文件的时间戳有问题,可能它们来自不同的机器。使用 Build > Clean 并确保没有 .obj 文件。

标签: c++ visual-c++


【解决方案1】:

要解决 C1047,请使用相同版本的工具集重新构建所有对象文件或库。

Found here

【讨论】:

  • 还有其他方法可以解决这个问题吗?
  • 谁能给出解决这个问题的方法?由于这个问题,我坚持工作。
【解决方案2】:

我按照下面的步骤,问题得到了解决。

错误 C1047 对象或库文件“库路径”是由不同版本的编译器创建的,而不是其他对象(如 “对象文件路径”);使用相同的编译器重建所有对象和库。

  1. 在同一编译器 [VS2019:Toolset 142] 中编译报告的 Library Path 项目。
  2. 验证创建的库。
  3. 从问题报告的项目中清除所有二进制文件、lib 和目标文件。
  4. 将新库复制到相应文件夹或如果项目有任何预构建步骤,请不要复制库文件。
  5. 使用相同的编译器构建项目。

【讨论】:

    猜你喜欢
    • 2010-10-24
    • 2016-08-08
    • 2023-03-14
    • 2017-06-11
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    相关资源
    最近更新 更多