错误 LNK1104 无法打开文件 ';.obj'

Error LNK1104 cannot open file ';.obj'

错误 LNK1104 无法打开文件“;.obj”项目 1 D:\project1\source\project1\project1\LINK 1

我正在使用 visual studio 2015 和 openframeworks,我对 c++ 语言还很陌生。

我找不到引用此文件的代码行。

有没有人遇到过类似的错误或知道找到此错误原因的任何提示?

构建过程有两个主要步骤:

  • 编译
  • link

在编译阶段,obj 文件是从源文件构建的。在 linking 步骤中,这些 obj 文件 "concatenated" 解析未解析的引用并构建最终输出(static/dynamic 库或可执行文件)。

您的错误是 linker 错误,表示无法找到其中一个编译文件。这可能发生在以下情况:

  • 编译失败(有错误请查看之前的错误)
  • 出于某种原因跳过指定源文件的编译(当整个项目被排除在构建过程之外或者您指定它应该只保存预处理文件时,可能会发生这种情况)。

您还有其他错误消息或警告吗?请检查您是否真的在构建指定的项目(以及实际的源文件)。作为第一步,您可以在 Build -> Configuration Manager 中检查它。查看 "Build" 列中的复选框。

您如何设置链接器的输入路径?对于 C/C++,我发现对于 Visual Studio 下面列出的位置是 NOT 引用库的正确方法编译器链接阶段的文件(至少在 Community Version 2017 中)。我有一个名为“lib”的项目文件夹,其中包含我所有的 .lib 文件。最初我指定了一个值(错误):

Linker --> General --> Additional Library Directories: $(ProjectDir)lib;%(AdditionalDependencies)

我收到如下错误消息:

error LNK1104: cannot open file 'lib.obj'

我发现 this正确 指定库目录的方法:

VC++ Directories --> Library Directories

就我而言,我的价值是:

VC++ Directories --> Library Directories: $(ProjectDir)lib;$(LibraryPath)

我建了一个静态库,比如说TempLibrary.lib。我将这个库与我的应用程序链接起来,在 VS2015 中出现了上述错误。问题是,我只提到了库的名称,而我 漏掉了扩展名 。即,我在

中仅添加了名称“TempLibrary”

Linker->Input->Additional Dependencies.

在我将扩展名 (.lib) 添加到名称后,链接器问题得到解决。即 TempLibrary.lib