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

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.

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.

Related

MSBuild - MSB4019 Due to invalid path (Visual Studio 2019)

I am getting below error, while building C++ solution on VS2019 via command prompt.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.ToolsetLocation.props(50,3): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160Platforms\Win32\Platform.props" was not found. Confirm that the expression in the Import declaration "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160Platforms\Win32\Platform.props" is correct, and that the file exists on disk.
After observing it is very clear that there is an issue with the path created internally at some props file. It is not very clear why and from where this is coming up.
Any pointers would be of great help.
Thanks in advance.
MSBuild - MSB4019 Due to invalid path (Visual Studio 2019)
There is some errors when you install VS2019.
To fix it, please try this:
1) Open VS Installer, and make sure that you have installed v142 Build Tool.
Or run this on an elevated command prompt (admin): npm install --global --production windows-build-tools. If you don't have npm, I recommend installing it, otherwise this won't work.
2) I found that v160Platforms does not have \, is that the same as you description?
Please create a new environment variables called VCTargetsPath and put its value to this:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\
3) do a fix in vs installer or just update your VS if it is not thee latest version.
Then use developer command prompt for VS2019 as administrator to run your command.
In addition, you can use -verbosity:detailed in command line to see the detailed build log to check whether there is a obvious error. More info you can check this similar issue.
This was not due to the installation issues. This was caused due to VCTargetsPath passed to the MSBuild.exe. In VS2017, it was expecting the VCTargetsPath to be passed in the build command whereas it failed with construction of invalid path if we pass the value in VS2019. Hence after removing the VCTargetsPath from the command all worked well for me.
I ran into the exactly same problem today. The system env path of VCTargetsPath misses a slash at the end.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\ **<--- end slash**

Unable to install Intel HAXM for Android Studio

Intel HAXM is a prerequisite for compiling Android Studio code. When I try to install it through the SDK manager, it downloads fine, but while installing, says:
HAXM installation failed. To install HAXM follow the instructions found at: https://software.intel.com/android/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-windows
So I did the same and downloaded the files from GitHub. I followed the instructions, but when I try to build the .sln file, there is another error:
Severity Code Description Project File Line Suppression State
Error MSB8020 The build tools for WindowsKernelModeDriver10.0 (Platform Toolset = 'WindowsKernelModeDriver10.0') cannot be found. To build using the WindowsKernelModeDriver10.0 build tools, please install WindowsKernelModeDriver10.0 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". haxm-core C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 390
Please guide me what I should do. I would be grateful if someone can compile the file for me....
The message
Error MSB8020 The build tools for WindowsKernelModeDriver10.0
(Platform Toolset = 'WindowsKernelModeDriver10.0') cannot be found.
means you have not installed the Windows 10 WDK. But you don't need to compile it on your own, simply install the last version haxm-windows_vVERSION.zip .
You can also try Hyper-V Platform if you get HAXM issues.

Error MSB8020, changed build tools, still not working

I'm trying to install the ogre sdk for Visual Studio 2012 express as per these instructions, but when I try to build the ALL_BUILD project, I get this error:
Error 1 error MSB8020: The builds tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v140 to build using the v140 build tools. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets 44 5 Sample_VolumeTex
I looked into project properties and indeed the platform tool set was set to v140, and so I changed it to v110 but I'm still getting the same MSB8020 error. I also tried right clicking the solution, but there's no option to update vc++ projects. Can someone please help me figure out what's going on?

Installing nvm for windows : Visual Studio npm debug fails because of illegal characters in path

the newest node.js 0.12.0 doesnt work together with the sqlite3 package. i found nvm for windows: nvm for windows https://github.com/coreybutler/nvm-windows/releases . i thought nice to use the old and new node.js versions on 1 computer.
after installing nvm for windows in c:\nvm , i get in visual studio 2013 in debug that there is a fault in npm : illigal characters in path resulting in exit debug program . Outside Visual Studio it works fine.
As I mentioned in my comment, I had a very similar problem. After installing node.js for purpose of using gulp I could not do a successful build. I would get the following error:
C:\Visual Studio
Projects\MyProject\packages\RazorGenerator.MsBuild.2.2.6\build\RazorGenerator.Ms‌​Build.targets(21,9):
error : Illegal characters in path.
After searching around I guessed that the problem had to do with the node.js utilizing "illegally" long path names. For some background go here: https://github.com/joyent/node/issues/6960
My solution was to install the Flatten Packages tool: https://visualstudiogallery.msdn.microsoft.com/cd0b1938-4513-4e57-b9b7-c674b4a20e79?SRC=VSIDE
I ran flatten packages on the "node_modules" folder, tried to build (failed but with a different error), restarted Visual Studio, and everything now seems to build ok. Hope this helps.
UPDATE
One thing to keep in mind is that, by design, Flatten Packages will move files up in the directory structure. As a consequence, however, Visual Studio will still look for some of the folder/files in the OLD location; VS will shows the [!] symbol to show that the file was there but no longer is. These old file references can gum up the build, so you need to simply delete these old file references/directories.
Since this post still is on top when searching for this topic..
I also had this problem with "Illegal characters in path" and found that the best solution for me and my team was to make Visual Studio use the latest npm version (>= 3.0) since the node_modules folder depth doesnt get as deep as with npm2 (used by Visual Studio).
This solution will work for you in the background, not needing to run extra commands and tools for flattening the folder.
See my post here for a complete how to: http://newsweb.se/how-to-use-visual-studio-2015-with-latest-nodejs-npm/

Various issues installing igraph in Visual Studio 2010 and Cygwin/MinGW ("sys/time.h not found")

I couldn't get igraph to work with Visual Studio 2010 (supposedly many known issues), and so decided to try installing it in Cygwin. ./configure went fine. But make gave this error:
f2c/dtime_.c:16:23: fatal error: sys/times.h: No such file or directory
Makefile:2190: recipe for target `libf2c_la-dtime_.lo' failed
make[3]: *** [libf2c_la-dtime_.lo] Error 1
I tried installing it in MinGW and get the same error when I make. Should I be providing "sys/time.h" or a path to it? Where is sys/time.h? Using Windows 7.
Edit
The problems in Cygwin and MinGW was due to the wrong version of gcc being used by my clean installation of Cygwin (and a characteristic of MinGW). Solution here: Installing/compiling in Cygwin/MinGW - How to set the include "path"? (symbolic link?)
The problem in Visual Studio 2010 was due to building in "Debug" instead of "Release". One of igraph's creator, Gábor Csárdi, graciously provided an excellent step-by-step guide below that identified and resolved it.
Igraph actually does work with Visual C++ 2010 Express, we test this before releases, and I have just tried it. You need to do the following steps.
Download the source package specifically created for Visual Studio.
Uncompress the file into My Documents\Visual Studio 2010\Projects.
Open the igraph.sln solution file in igraph-0.6-msvc\igraph-0.6-msvc directory from Visual Studio.
Visual Studio offers to convert the solution file to the current format, do that. Just click on Next, Next and Finish.
On the toolbar, change 'Debug' to 'Release' to make release builds.
Choose Debug -> Build solution and wait until the library is built.
To test it you can open the solution file in the igraphtest directory, convert it as well, choose 'Release' builds, and then build it and run it from the command line. It is a simple C++ program that uses igraph to create a graph and write it into the file out.txt.
You don't have to set up include and library directories at all, everything is set up properly in the solution file, both for igraph and igraphtest.
is there an sys/times.h file?
I have a vague memory that I had to make that symlink on a system once.

Resources