Search code examples
node.jsvisual-c++msbuildvisual-studio-2015node-gyp

LNK1104 error when building node-gyp project in Visual Studio 2015


I've tried everything, I have the proper version of Python (Python27), Windows SDK 8.1 is installed, Visual C++ is also installed, but the build still fails. I'm using Visual Studio 2015 Community editor btw. When I try to execute node-gyp buildfrom cmd I get the following error:

> C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.t
argets(44,5): error MSB8020: The builds tools for v140 (Platform Toolset = 'v14
0') cannot be found. To build using the v140 build tools, either click the Proj
ect menu or right-click the solution, and then select "Update VC++ Projects..."
. Install v140 to build using the v140 build tools. [C:\Users\Programming PC\Do
cuments\GitHub\node-addon-examples\1_hello_world\node_0.10\build\hello.vcxproj]

This error prompted me to go into to Visual Studio and see if the project can at least build and run from there, it doesn't.

Please help I looked at all of the other questions pertaining to this issue but none of their solutions have helped me.

enter image description here


Solution

  • Took a lot of research but I found the solution(s). First, to get rid of the MSB8020 error either add the VisualStudioVersion environment variable and set it to your version of visual studio or execute node-gyp build with this flag /p:VisualStudioVersion=14.0 (In my case).

    I actually got different errors after I solved this one and I believe they are well worth mentioning.

    Error MSB4175 then showed up, basically indicating that it cannot find Microsoft.Build.Tasks.v12.0.dll (Do a search on this .dll to find out where its usually located), copy and paste it to the path that it's looking for it in.

    Now here is the kicker, the last error that interrupts node-gyp is because of a missing .lib file. Npm doesn't create the following file ...\.node-gyp\4.3.1\Debug\node.lib. So you need to go here and download a node.lib and mkdir Debug\ and put node.lib in there.

    Afterwards node-gyp should build without errors.