Developing VCV in Windows

Hi,

I am new to VCV development and am trying to build from source. I have a fresh windows machine and followed these instructions: https://vcvrack.com/manual/Building#setting-up-your-development-environment … firstly installing MSYS2, then updating packages, etc…

Oddly when I then launch the MSYS2 MinGW 64 bit shell, and the CD to where I git cloned Rack… and then run make dep, the build fails at openssl …

I then restarted the MSYS2 MinGW 64 bit shell itself, but it now seems make is somehow missing/not in my path.

Any ideas? Is the VCV documentation horribly out of date and thus I’m doomed to fail? Or am I slow and there is some basic MSYS2 issue here I need to fix first?

Many thx Justin

Some more detail - seems like the openssl dependency is failing during the build

lomhe@WINDOWS-IA9F3LI MINGW64 /D/RAck/dep/openssl-1.1.1d $ make --debug=b GNU Make 4.3 Built for x86_64-pc-msys Copyright © 1988-2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Reading makefiles… Updating makefiles… Updating goal targets… ** File ‘all’ does not exist.** ** File ‘build_generated’ does not exist.** ** Must remake target ‘build_generated’.** ** Successfully remade target file ‘build_generated’.** Must remake target ‘all’. make depend && make _all make: /bin/sh: No such file or directory make: *** [Makefile:188: all] Error 127

I’m not on widows, but this could be caused by one of two things:

First, its possible that you don’t have the Borne Shell (or equivalent) installed. Make sure that you install it as part of the MinGW installation. Most probably this is your issue.

If you do have it installed it is possible that cross-platform line ending issues are hitting you. It is trying to execute /bin/sh, but if you have your line ending messed up there could be garbage at the end of the line that you don’t see. GIT is usually smart enough to handle text files for you, but if it is checked in as a binary and you are checking it out as binary it can get confused. Look at the file it is trying to run with a really good editor and see if that’s the case.

As an example, if I transfer a Windows text file as a binary, that line would show up on my machine (Linux) as /bin/sh^M, because text files in Linux end with a line feed, whereas in Windows it is a carriage return/line feed, so the carriage return (^M) is misinterpreted as part of the line. If I were to try to execute it it would fail, because there is no file called sh^M on my machine. This has happened to me numerous times, but like I said, GIT tends to be pretty good, so it’s probably the former.

I had no problems building rack on windows about 3 months ago. It looks like openssl has had a minor version bump since then but I wouldn’t think that would be a problem.

I build rack all the time in windows. Just follow the directions. Once last year my Msys2 got kind of hosed so I deleted it and started from scratch.

Do you update all the deps after pulling from rack?

Also sometimes rack adds new packages that are required. Run all the pacman commands in the manual to install all the dependencies?

Thanks all for the help. OK looks like I was missing bash … so that’s missing from the VCV rack development enviroment instructions. Think you need an extra “pacman -S sh” in the environment setup instructions.

However, it’s now still failing the openssl build… seems like it’s looking for a directory while compiling, guessing it’s “Rack/dep/lib/engines-1_1” … any ideas?

make[2]: Entering directory ‘/D/Rack/dep/openssl-1.1.1d’ /usr/bin/perl util/mkbuildinf.pl “cc -g -O3 -march=nocona -m64 -g -O3 -march=nocona -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN -D_MT -DNDEBUG” “mingw64” > crypto/buildinf.h cc -g -O3 -march=nocona -I. -Icrypto/include -Iinclude -Icrypto -m64 -g -O3 -march=nocona -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DOPENSSLDIR="“C:/Program Files/Common Files/SSL”" -DENGINESDIR=""/D/Rack/dep/lib/engines-1_1"" -DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN -D_MT -DNDEBUG -c -o crypto/cversion.o crypto/cversion.c cc.exe: fatal error: cannot execute ‘cc1’: CreateProcess: No such file or directory compilation terminated. make[2]: *** [Makefile:1193: crypto/cversion.o] Error 1 make[2]: Leaving directory ‘/D/Rack/dep/openssl-1.1.1d’ make[1]: *** [Makefile:186: all] Error 2 make[1]: Leaving directory ‘/D/Rack/dep/openssl-1.1.1d’ make: *** [Makefile:118: lib/libssl.a] Error 2

So weird very … seems like it’s something to do with msys2.

If I , within a msys2 64 bit shell, do a pacman -S mingw-w64-x86_64-gcc make mingw-w64-x86_64-binutils … it re-installs these packages (which are previously installed)… then I run a make dep , it seems to work. Weirdly if i leave the shell it all stops working (i’ve checked my path is OK )… so strange, any ideas?

Now I try to run make (not make dep) … and it’s failing at

$ make make: *** No rule to make target ‘build/dep/pffft/pffft.c.o’, needed by ‘Rack.exe’. Stop.

So weird, basically now bash is missing again! So I had to re-pacman -S bash to get it back . What in the world is wrong with this msys2 install … ?

After re-pacmaning everything… I’m back to this issue:

$ make make: *** No rule to make target ‘build/dep/pffft/pffft.c.o’, needed by ‘Rack.exe’. Stop.

OK I went to deps folder and did a make pffft which fixed that issue. It seems like the build instructions are just terribly out of date/wrong/make file needs edits. Now having issues with nanovg / other dep headers…

OK managed to copy a bunch of headers over, build rtaudio (note I had to rename header folder), and install mingw-w64-x86_64-libzip and mingw-w64-x86_64-speexdsp … and still more failures… I am about to just give up.

winmm -lksuser -lshlwapi -lmfplat -lmfuuid -lwmcodecdspuuid -ldbghelp g++.exe: error: dep/lib/libspeexdsp.a: No such file or directory g++.exe: error: dep/lib/libsamplerate.a: No such file or directory g++.exe: error: dep/lib/libzip.a: No such file or directory g++.exe: error: dep/lib/libz.a: No such file or directory g++.exe: error: dep/lib/libcurl.a: No such file or directory g++.exe: error: dep/lib/libssl.a: No such file or directory g++.exe: error: dep/lib/libcrypto.a: No such file or directory g++.exe: error: dep/lib/librtaudio.a: No such file or directory g++.exe: error: dep/lib/librtmidi.a: No such file or directory

I’m pretty sure there is something wrong with your build enviroment. Any chance you have spaces in the install folder of MSYS?

None … maybe I’ll reinstall everything again

Installed everything on a clean Windows 10 virtual machine and followed the instructions exactly. No problem here, Rack builds without a problem.

2 Likes

I develop all my modules on Windows with no problem. 2 things (and both are in the instructions).

  1. Make sure there are no spaces in your development path
  2. you should be using ming64 to compile

I’ve never had to install bash

1 Like

I’m pretty sure make deps still works. I know it’s frustrating, but maybe get your msys2 install working right before blaming VCV documentation?

Hi all - sorry for my frustration earlier. I reinstalled everything and it’s working fine now… very odd, not sure what the issue was. Anyhow, thanks again for the tips. Now to code some cool stuff hopefully .