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

时间:2015-12-25 12:15:10

标签: c++ linker-errors openframeworks

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

我使用visual studio 2015和openframeworks,我对c ++语言还是比较新的。

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

有没有人遇到类似的错误,或者是否知道找到此错误原因的提示?

3 个答案:

答案 0 :(得分:3)

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

  • 编译
  • 链接

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

您的错误是链接器错误,表示无法找到其中一个已编译的文件。这可能发生在:

  • 编译失败(检查以前的错误,如果有的话)
  • 由于某种原因,跳过指定源文件的编译(当整个项目从构建过程中排除或指定它应该只保存预处理文件时,可能会发生这种情况。)

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

答案 1 :(得分:1)

我已经建立了一个静态库,例如 TempLibrary.lib 。我正在将此库与我的应用程序链接,并在VS2015中遇到上述错误。问题是,我只提到库的名称,而我缺少扩展名。也就是说,我在

中仅添加了名称“ TempLibrary”

Linker-> Input->其他依赖项。

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

答案 2 :(得分:0)

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

this.createInvitationForm.reset();

我收到如下错误消息:

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

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

error LNK1104: cannot open file 'lib.obj'

就我而言,我的价值是:

VC++ Directories --> Library Directories