AndrewBelt / HelloDAW

Audio plugin boilerplate code built with the command line and Makefiles
32 stars 1 forks source link

Compile bug. #2

Open Alex-Longard opened 6 years ago

Alex-Longard commented 6 years ago

Hello Andrew, If I try to compile with cmd, shows this error:

C:\msys64\VST>make process_begin: CreateProcess(NULL, cc -dumpmachine, ...) failed. make: Makefile:15: pipe: No error process_begin: CreateProcess(NULL, cc -dumpmachine, ...) failed. make: Makefile:17: pipe: No error process_begin: CreateProcess(NULL, cc -dumpmachine, ...) failed. make: Makefile:19: pipe: No error Makefile:22: *** Could not determine architecture. Stop.

I compile in Win10 x64, Mingw64 last version. Do you can write example .bat file for compile HelloVST with windows console?

AndrewBelt commented 6 years ago

Could you post the results of gcc -dumpmachine?

Alex-Longard commented 6 years ago

There dump: C:\msys64\VST>C:\mingw32\bin\gcc.exe -dumpmachine i686-w64-mingw32

Thanks for help!

AndrewBelt commented 6 years ago

Are you using the MSYS2 Mingw64 shell as specified at https://github.com/AndrewBelt/HelloDAW/tree/master/VST#windows or the Windows shell (cmd.exe or Powershell)?

Alex-Longard commented 6 years ago

I compile with Windows command line - cmd.exe, i not use powershell.

AndrewBelt commented 6 years ago

I'm not sure that will work. You'll have to use MSYS2. If you can't or don't want to use MSYS2 for whatever reason, it might be possible, but I personally don't have a reason to try to support that.

Alex-Longard commented 6 years ago

I do not know how to use Msys. I installed it only today for Hellovst. I want to write a vst plugin for my task, since plug-in developers do not want to cooperate with blind users, and few of the blind program for audio software.

AndrewBelt commented 6 years ago

I am not sure if MSYS2 is blind accessible, but it is a text-based terminal interface like cmd.exe, so you might have luck with it. The shells are at C:\msys64\mingw64.exe and mingw32.exe, depending on whether you want to compile a 64-bit or 32-bit VST plugin. If this doesn't work, I'll see if it's easy to add support for cmd.exe.

Alex-Longard commented 6 years ago

Msys shell accessible for screenreader, only this not work. I write in msys terminal: cd .\vst make

And this shows result, as i write in first message.

AndrewBelt commented 6 years ago

I am not sure, I can't replicate this. What is the output of which make?

Alex-Longard commented 6 years ago

O, i can try to compile this in msys, it's shows more bugs in one file:

It's output log:

C:\msys64\VST>make g++ -std=c++11 -g -MMD -MP -O3 -march=nocona -ffast-math -Wall -Wextra -Wno-unused-parameter -fPIC -IVST2_SDK -c -o build/HelloVST.cpp.o HelloVST.cpp HelloVST.cpp:21:15: warning: multi-character character constant [-Wmultichar] setUniqueID('HELO'); ^~ HelloVST.cpp: In member function 'virtual void HelloVST::getParameterLabel(VstInt32, char)': HelloVST.cpp:50:41: warning: zero-length ms_printf format string [-Wformat-zero-length] snprintf(label, kVstMaxParamStrLen, ""); ^ HelloVST.cpp:50:41: warning: zero-length ms_printf format string [-Wformat-zero-length] HelloVST.cpp: In member function 'virtual VstInt32 HelloVST::processEvents(VstEvents)': HelloVST.cpp:70:5: error: 'uint8_t' was not declared in this scope uint8_t status = midiEvent->midiData[0]; ^~~ HelloVST.cpp:70:5: note: suggested alternative: 'wint_t' uint8_t status = midiEvent->midiData[0]; ^~~ wint_t HelloVST.cpp:71:13: error: expected ';' before 'data1' uint8_t data1 = midiEvent->midiData[0]; ^~~~~ HelloVST.cpp:72:13: error: expected ';' before 'data2' uint8_t data2 = midiEvent->midiData[0]; ^~~~~ HelloVST.cpp:73:38: error: 'status' was not declared in this scope printf("MIDI: %02x %02x %02x\n", status, data1, data2); ^~ HelloVST.cpp:73:38: note: suggested alternative: 'static' printf("MIDI: %02x %02x %02x\n", status, data1, data2); ^~ static HelloVST.cpp:73:46: error: 'data1' was not declared in this scope printf("MIDI: %02x %02x %02x\n", status, data1, data2); ^~~~~ HelloVST.cpp:73:53: error: 'data2' was not declared in this scope printf("MIDI: %02x %02x %02x\n", status, data1, data2); ^~~~~ HelloVST.cpp:69:19: warning: unused variable 'midiEvent' [-Wunused-variable] VstMidiEvent midiEvent = (VstMidiEvent) event; ^~~~~ Makefile:104: recipe for target 'build/HelloVST.cpp.o' failed make: *** [build/HelloVST.cpp.o] Error 1

AndrewBelt commented 6 years ago

Thanks, I forgot the stdint.h header. Do a git pull and try it now.

Alex-Longard commented 6 years ago

Hmmm, many varnings and new bug:

C:\msys64\VST>make g++ -std=c++11 -g -MMD -MP -O3 -march=nocona -ffast-math -Wall -Wextra -Wno-unused-parameter -fPIC -IVST2_SDK -c -o build/HelloVST.cpp.o HelloVST.cpp HelloVST.cpp:22:15: warning: multi-character character constant [-Wmultichar] setUniqueID('HELO'); ^~ HelloVST.cpp: In member function 'virtual void HelloVST::getParameterLabel(VstInt32, char*)': HelloVST.cpp:51:41: warning: zero-length ms_printf format string [-Wformat-zero-length] snprintf(label, kVstMaxParamStrLen, ""); ^ HelloVST.cpp:51:41: warning: zero-length ms_printf format string [-Wformat-zero-length] make: *** No rule to make target 'build/VST2_SDK/public.sdk/source/vst2.x/audioeffect.cpp.o', needed by 'HelloVST.dll'. Stop.

AndrewBelt commented 6 years ago

You can ignore the warnings, they're fine. Did you copy the VST2_SDK directory from Steinberg's VST SDK to HelloDAW's VST directory?

Alex-Longard commented 6 years ago

Yes, copy folder and change path in hellovst for audioefectx.h. This write new error:

Makefile:104: recipe for target 'build/VST2_SDK/public.sdk/source/vst2.x/audioeffect.cpp.o' failed make: *** [build/VST2_SDK/public.sdk/source/vst2.x/audioeffect.cpp.o] Error 1

Alex-Longard commented 6 years ago

Andrew, i will can start Team viewer and you can see in my system.

AndrewBelt commented 6 years ago

I don't have time tonight to look at your system, but make sure that the file <HelloDAW root>/VST/VST2_SDK/public.sdk/source/vst2.x/audioeffect.cpp is present, since that's what the error is complaining about.

Alex-Longard commented 6 years ago

In terminal shows: error in command syntax Makefile:104: recipe for target 'build/VST2_SDK/public.sdk/source/vst2.x/audioeffect.cpp.o' failed

In this string audioefect.cpp.o, it's bug in makefile? My files and folders normal, i try this now.