【问题标题】:.obj : fatal error LNK1107: invalid or corrupt file: cannot read at 0x6592.obj:致命错误 LNK1107:无效或损坏的文件:无法在 0x6592 读取
【发布时间】:2013-04-28 17:16:10
【问题描述】:

我正在尝试将 .obj 模型加载到我的 c++ opengl 3 代码中,但由于某种原因,它给了我这个错误:

1>正在链接... 1>.\bunny.obj:致命错误 LNK1107:无效或损坏的文件:无法在 0x6592 读取

我试图搜索类似的错误,但有关于 .dll 或 .lib 的错误。

你能帮我解决这个问题吗?我也尝试过使用不同的 obj 模型,但它总是给我这个错误。

【问题讨论】:

  • 看起来您正在尝试链接 .obj 图形模型。这不是它的工作原理!您的程序应该在运行时读取它。 Visual Studio 确实与 .obj 文件链接,但这不完全是一回事。

标签: c++ visual-studio-2008 opengl-3 .obj


【解决方案1】:

您正在尝试使用 C++ 链接器加载您的对象模型(可能您刚刚将它添加到项目中,现在它尝试被编译)。 链接器可以处理 .obj 文件,但它会等待它们成为“目标代码”文件(通常也具有 .obj 扩展名),这些文件只是已编译的模块(例如用 C++ 语言编写),可以链接到单个可执行文件中或 DLL。

C++ 编译器的任何部分都无法读取图形对象模型。您应该从 IDE 项目中删除 .obj 文件。并确保你有一个代码可以在程序运行时读取文件。

如果您希望将对象模型嵌入到您的 .EXE 中(因此程序不需要其目录中的文件),那么您可以将其放入资源中并将它们与可执行文件链接。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,并通过从构建中排除 .obj 文件来解决它。换句话说:

    1. 右键单击您的 .obj 文件。
    2. 点击“属性”
    3. 将“从构建中排除”设置为“是”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2020-03-06
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      相关资源
      最近更新 更多