Error LNK1104 cannot open file ';.obj'

The build-process has two main step:

  • compile
  • link

In the compiling stage the obj files are built from the source file. In the linking step these obj files are "concatenated" resolving unresolved references and builds the final output (static/dynamic library or an executable).

Your error is a linker error which says that one of the compiled file cannot be found. This can happen when:

  • the compilation is failed (check the previous errors if any)
  • the compilation is skipped for the specified source file for some reason (this can happen when the whole project is excluded from the build process or you specified that it should save the preprocessed file only).

Do you have any other error messages or warnings? Please check if you're actually building the specified project (and the actual source file as well). As a first step, you can check it in the Build -> Configuration Manager. Look at the checkbox in the "Build" column.


How are you setting your input paths for the Linker? For C/C++, I have found for Visual Studio the location listed below is NOT the correct way to reference library files during the compiler-linking stage (at least in Community Version 2017). I had a project folder called 'lib' which contained all my .lib files. Originally I had specified a value like (which was wrong):

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

I was getting error messages like:

error LNK1104: cannot open file 'lib.obj'

I figured out this was the correct way to specify the library directories:

VC++ Directories --> Library Directories

In my case, my value was:

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

I had built a static library, say TempLibrary.lib. I was linking this library with my application and got the above error in VS2015. The problem was, that I was mentioning only the name of the library and I missed the extension. i.e, I had added only the name "TempLibrary" in the

Linker->Input->Additional Dependencies.

After I had added the extension (.lib) to the name, the linker issue got resolved. i.e, TempLibrary.lib