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

Error LNK1104 cannot open file ';.obj'

本文关键字:obj 文件 LNK1104 错误      更新时间:2023-10-16

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

我使用的是visualstudio2015和openframework,我对c++语言还很陌生。

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

有没有人出现过类似的错误,或者知道找出错误原因的任何技巧?

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

  • 编译
  • 链接

在编译阶段,obj文件是从源文件构建的。在链接步骤中,这些obj文件被"连接"以解析未解析的引用,并构建最终输出(静态/动态库或可执行文件)。

您的错误是链接器错误,表示找不到已编译的文件之一。这种情况可能发生在:

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

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

如何设置Linker的输入路径?对于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'

我发现这个指定库目录的正确方式:

VC++ Directories --> Library Directories

就我而言,我的价值是:

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

我已经构建了一个静态库,比如TempLibrary.lib。我正在将这个库与我的应用程序链接,并在VS2015中出现了上述错误。问题是,我只提到了库的名称,并且错过了扩展。即我只添加了名称";TempLibrary";在中

链接器->输入->其他依赖项。

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