Programming
c# .net path ikvm
Updated Tue, 19 Jul 2022 09:37:48 GMT

Fatal Error C1083 - Cannot open include file: "windows.h": No such file or directory


I'm trying to get IKVM to build (see this question) but now have encountered a problem not having to do with IKVM so I'm opening up a new question:

When running nant on the IKVM directory with the Visual Studio 2008 Command Prompt (from the Start Menu), I get the following error:

        ikvm-native-win32:
               [cl] Compiling 2 files to C:\ikvm-0.36.0.11\native\Release'.
               [cl] jni.c
               [cl] os.c
               [cl] C:\ikvm-0.36.0.11\native\os.c(25) : fatal error C1083: Cannot open include file: 'windows.h': No such
                    file or directory
               [cl] Generating Code...
        BUILD FAILED
        C:\ikvm-0.36.0.11\native\native.build(17,10):
        External Program Failed: cl (return code was 2)

I have the Platform SDK installed. What am I missing? I'm sure it's something simple...

Edit #1 I just checked - I do have the directory containing windows.h on the Path. Edit #2 Found the answer (see my answer below): The directory containing windows.h needed to be in the "Include" path variable.




Solution

OK here is the answer I ended up finding: rather than being on the Path, the directory with windows.h (in my case, C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include) needed to be set in the Include environment variable.





Comments (3)

  • +2 – So, you have to set the value of the "Include" path variable to "C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Include". If it did not exist you created the "Include" environment variable and set the value to that specified in your answer? — Dec 11, 2014 at 12:40  
  • +2 – I'm genuinely asking and also think for prosperity that it is worth being explicit here. — Dec 11, 2014 at 12:41  
  • +1 – @JohnDoe - just tried it, some of the Windows SDK's have build command prompts, if you open one and type SET, you will see all environment variables, among others Include=... which is verbatim as such. — May 31, 2016 at 17:36  


Linked Articles

Local articles referenced by this article: