vlang / v

Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
MIT License
35.79k stars 2.16k forks source link

V not able to find C:\Program Files\Windows Kits\10\Lib #5854

Closed thisisleobro closed 3 years ago

thisisleobro commented 4 years ago

I am using gcc version 7.3.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project) on windows10x86

I cloned the repo and executed make on the folder expecting it to compile the v compiler but got the following output:

Building V
Cloning vc...

Attempting to build v.c with GCC...
 > Compiling with .\v.exe self

Failed to compile - Create an issue at 'https://github.com/vlang/v' with the following info:

cannot compile `C:\Users\user\STAGE\v\cmd\tools\vself.v`:
V panic: ls() couldnt open dir "C:\Program Files\Windows Kits\10\Lib": directory does not exist
print_backtrace_skipping_top_frames is not implemented

Exiting from error

I have clang and gcc installed but not msvc

I was not sure i should open an issue since it is probably the branche where the work is being done but anyway

Executing make a second time gives the following output:

Building V
Updating vc...

Attempting to build v.c with GCC...
 > Compiling with .\v.exe self

Failed to compile - Create an issue at 'https://github.com/vlang/v' with the following info:

cannot compile `C:\Users\user\STAGE\v\cmd\tools\vself.v`:
V panic: ls() couldnt open dir "C:\Program Files\Windows Kits\10\Lib": directory does not exist
print_backtrace_skipping_top_frames is not implemented

Exiting from error

The problem seems to be "C:\Program Files\Windows Kits\10\Lib" not existing which is weird since this path seems to be msvc only.

JalonSolov commented 4 years ago

First thing to try might be to get a newer version of gcc. I have

gcc.exe (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 10.1.0

and I'm not seeing any issues compiling v.

ryan-willis commented 4 years ago

I think the only way you could experience this error is if you used to have a Windows SDK installed, but manually removed it. Check the Registry at this path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots. You should see a KitsRoot10 REG_SZ C:\Program Files\Windows Kits\10\ in there, which reports a kit that doesn't exist. Removing that key/value pair may resolve the issue.

thisisleobro commented 4 years ago

First thing to try might be to get a newer version of gcc. I have

gcc.exe (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 10.1.0

and I'm not seeing any issues compiling v.

Where did you get that version? I am using the compiler that came with qt so i am not sure how to update

I think the only way you could experience this error is if you used to have a Windows SDK installed, but manually removed it. Check the Registry at this path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots. You should see a KitsRoot10 REG_SZ C:\Program Files\Windows Kits\10\ in there, which reports a kit that doesn't exist. Removing that key/value pair may resolve the issue.

I did that and now i get

Building V
Updating vc...

Attempting to build v.c with GCC...
 > Compiling with .\v.exe self

Failed to compile - Create an issue at 'https://github.com/vlang/v' with the following info:

cannot compile `C:\Users\user\STAGE\v\cmd\tools\vself.v`:
V panic: ls() couldnt open dir "Lib": directory does not exist
print_backtrace_skipping_top_frames is not implemented

Exiting from error

apparently v was compiled but when i run "v" i get:

For usage information, quit V REPL and run `v help`
cannot compile `C:\Users\user\STAGE\v\cmd\tools\vrepl.v`:
V panic: ls() couldnt open dir "Lib": directory does not exist
print_backtrace_skipping_top_frames is not implemented

Runnig "v help" gets me what seems to be the right output tho but still cant compile example tho

$v examples\cli.v
V panic: ls() couldnt open dir "Lib": directory does not exist
print_backtrace_skipping_top_frames is not implemented
JalonSolov commented 4 years ago

I got gcc from http://winlibs.com/

thisisleobro commented 4 years ago

I got gcc from http://winlibs.com/

It still doesnt compile. I will point out again that i am compiling with the 32 bit toolchain. I would like to know if anybody was able to compile for x86 on windows and if it is supported

JalonSolov commented 4 years ago

That page has both 32-bit and 64-bit versions of gcc and other tools.

I haven't had a 32-bit version of Windows for years, so sorry, I can't help you. Hopefully someone else here can.

Ekopalypse commented 3 years ago

@thisisleobro, latest version seems to do the job

D:\temp\v>make -gcc
Updating TCC
 > Syncing TCC from https://github.com/vlang/tccbin

Updating vc...
 > Sync with remote https://github.com/vlang/vc

Building V...
 > Attempting to build v_win.c with GCC
 > Compiling with .\v.exe self
 > V built successfully
 > To add V to your PATH, run `.\v.exe symlink`.

V version: V 0.2.2 3b166d8

D:\temp\v>dir *.exe
...
27.03.2021  18:18         2.294.339 v.exe
27.03.2021  18:18         2.294.822 v_old.exe

D:\temp\v>dumpbin /headers v.exe | findstr /C:"machine"
             14C machine (x86)
                   32 bit word machine
thisisleobro commented 3 years ago

I did manage to build v.exe too but does it compiles the examples?

Ekopalypse commented 3 years ago

Depends on whether you have met all the required dependencies/requirements. For example, if you try to build the UI samples and your graphics driver does not support the minimum OpenGL version required, it will not work. The same is true if you try the Sqlite examples but don't have the development headers installed, and so on.

thisisleobro commented 3 years ago

Depends on whether you have met all the required dependencies/requirements. For example, if you try to build the UI samples and your graphics driver does not support the minimum OpenGL version required, it will not work. The same is true if you try the Sqlite examples but don't have the development headers installed, and so on.

i am aware of that but are you able to build something that does have no external dependencies like fizz_buzz

Ekopalypse commented 3 years ago

Yes, that's not a problem.

image