steinbergmedia / vst3sdk

VST 3 Plug-In SDK
Other
1.59k stars 162 forks source link

build problem on current master #34

Closed ycollet closed 5 years ago

ycollet commented 5 years ago

I build vst3sdk on Fedora 29 64 bits. gcc version is 8.3.1.

I meet the following error during compilation:

[ 92%] Building CXX object public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o
In file included from /usr/include/c++/8/memory:80,
                 from /home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/editorhost/source/platform/iapplication.h:40,
                 from /home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:40,
                 from /home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/usr/include/c++/8/bits/unique_ptr.h: Dans l'instanciation de « typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = Steinberg::Vst::AudioHost::App; _Args = {}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<Steinberg::Vst::AudioHost::App, std::default_delete<Steinberg::Vst::AudioHost::App> >] » :
/home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:63:57:   requis depuis ici
/usr/include/c++/8/bits/unique_ptr.h:831:30: error: expression « new » invalide pour le type de classe abstraite « Steinberg::Vst::AudioHost::App »
     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:52:7: note:   parce que les fonctions virtuelles suivantes sont pures dans « Steinberg::Vst::AudioHost::App »:
 class App : public EditorHost::IApplication
       ^~~
In file included from /home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:40,
                 from /home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/home/artelys/repository/github/vst3sdk/public.sdk/samples/vst-hosting/editorhost/source/platform/iapplication.h:56:15: note:   « virtual void Steinberg::Vst::EditorHost::IApplication::terminate() »
  virtual void terminate () = 0;
               ^~~~~~~~~
make[2]: *** [public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/build.make:180: public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1532: public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
fonkle commented 5 years ago

Same error here building audiohost. VST3SDK 3.6.13 build 81 / Ubuntu 18.10 / Kubuntu 18.10 / GCC 8.2.0.

[ 84%] Building CXX object public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o
In file included from /usr/include/c++/8/memory:80,
                 from /media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/editorhost/source/platform/iapplication.h:40,
                 from /media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:40,
                 from /media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/usr/include/c++/8/bits/unique_ptr.h: In instantiation of ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = Steinberg::Vst::AudioHost::App; _Args = {}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<Steinberg::Vst::AudioHost::App, std::default_delete<Steinberg::Vst::AudioHost::App> >]’:
/media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:63:57:   required from here
/usr/include/c++/8/bits/unique_ptr.h:831:30: error: invalid new-expression of abstract class type ‘Steinberg::Vst::AudioHost::App’
     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:52:7: note:   because the following virtual functions are pure within ‘Steinberg::Vst::AudioHost::App’:
 class App : public EditorHost::IApplication
       ^~~
In file included from /media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:40,
                 from /media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/media/data/projecten/develop/cpp/vst3sdk-git/vst3sdk/public.sdk/samples/vst-hosting/editorhost/source/platform/iapplication.h:56:15: note:     ‘virtual void Steinberg::Vst::EditorHost::IApplication::terminate()’
  virtual void terminate () = 0;
               ^~~~~~~~~
make[3]: *** [public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/build.make:180: public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:1532: public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:1544: public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/rule] Error 2
make: *** [Makefile:391: audiohost] Error 2

Help greatly appreciated.

rdtor commented 5 years ago

Same problem . gcc version 8.3

92%] Building CXX object public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o In file included from /usr/include/c++/8.3.0/memory:80, from /home/s/Programs/vst3sdk/public.sdk/samples/vst-hosting/editorhost/source/platform/iapplication.h:40, from /home/s/Programs/vst3sdk/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:40,

fonkle commented 5 years ago

Seems fixed: it now builds fine on Kubuntu 19.04 / 18.10 / 18.04.

ycollet commented 5 years ago

I just tried to compile vst3 and now, it compiles. Thanks a lot

jsochacki commented 5 years ago

I have the same error on audio host on ubuntu 18.04 with g++ 7.4.0, is there a particular version of g++ that is only supported? If anyone wants more information to help squash this bug I'm more than happy to share whatever they like.

rehans commented 5 years ago

I have the same error on audio host on ubuntu 18.04 with g++ 7.4.0, is there a particular version of g++ that is only supported? If anyone wants more information to help squash this bug I'm more than happy to share whatever they like.

I just tried on Ubuntu 18.04.2 LTS and gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0 and the build succeeds.

git clone --recursive https://github.com/steinbergmedia/vst3sdk.git
mkdir vst3sdk_build
cd vst3sdk_build/
cmake ../vst3sdk
cmake --build .
jsochacki commented 5 years ago

Well here is my build script. I realize that all the dependencies may not be in this script as I run other scripts before it that install many libraries so many of them may be in there but I wanted to paste it in here for completeness.

#!/bin/bash

sdkversion=vst3sdk

echo "Installing the Steinberg VST SDK"

echo "Getting build dependencies"

sudo apt-get -y install cmake
sudo apt-get -y install pgk-config
sudo apt-get -y install libxcb-util-dev
sudo apt-get -y install libxcb-cursor-dev
sudo apt-get -y install libxcb-keysyms1-dev
sudo apt-get -y install libxcb-xkb-dev
sudo apt-get -y install libxkbcommon-dev
sudo apt-get -y install libxkbcommon-x11-dev
sudo apt-get -y install libexpat1-dev
sudo apt-get -y install libgtkmm-3.0-dev
sudo apt-get -y install sqlite3 libsqlite3-dev
sudo apt-get -y install libjack-dev

echo "Getting the Steinberg VST SDK"

wget https://www.steinberg.net/$sdkversion
unzip -q $sdkversion
sudo rm $sdkversion
sudo mkdir /usr/local/SDKs
sudo mkdir /usr/local/SDKs/$sdkversion
sudo mv VST_SDK/ /usr/local/SDKs/$sdkversion
sudo ln -s /usr/local/SDKs/$sdkversion/VST_SDK/VST2_SDK/ /usr/local/SDKs/VST2_SDK
sudo ln -s /usr/local/SDKs/$sdkversion/VST_SDK/VST3_SDK/ /usr/local/SDKs/VST3_SDK

echo "Files downloaded and setup, moving on to making the SDK"

cd /usr/local/SDKs/VST3_SDK
sudo mkdir build
cd build

echo "Getting system configuration"
sudo cmake ../

echo "Making, this may take a while"
sudo make

echo "Install Complete"

So the difference is that I'm running make like the Readme.md says at https://github.com/steinbergmedia/vst3sdk and you are gitting from this git it while im wgetting it from their website.

I also ran with cmake as you show and it still fails.

I am also using Ubuntu 18.04.2 LTS and gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0 and the build fails at 96% with the following error

[ 96%] Building CXX object public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o
In file included from /usr/include/c++/7/memory:80:0,
                 from /usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/editorhost/source/platform/iapplication.h:40,
                 from /usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:40,
                 from /usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/usr/include/c++/7/bits/unique_ptr.h: In instantiation of ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = Steinberg::Vst::AudioHost::App; _Args = {}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<Steinberg::Vst::AudioHost::App, std::default_delete<Steinberg::Vst::AudioHost::App> >]’:
/usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:63:57:   required from here
/usr/include/c++/7/bits/unique_ptr.h:825:30: error: invalid new-expression of abstract class type ‘Steinberg::Vst::AudioHost::App’
     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:0:
/usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:52:7: note:   because the following virtual functions are pure within ‘Steinberg::Vst::AudioHost::App’:
 class App : public EditorHost::IApplication
       ^~~
In file included from /usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/audiohost/source/audiohost.h:40:0,
                 from /usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/audiohost/source/audiohost.cpp:38:
/usr/local/SDKs/vst3sdk/VST_SDK/VST3_SDK/public.sdk/samples/vst-hosting/editorhost/source/platform/iapplication.h:56:15: note:  virtual void Steinberg::Vst::EditorHost::IApplication::terminate()
  virtual void terminate () = 0;
               ^~~~~~~~~
public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/build.make:278: recipe for target 'public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o' failed
make[2]: *** [public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/source/audiohost.cpp.o] Error 1
CMakeFiles/Makefile2:1666: recipe for target 'public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/all' failed
make[1]: *** [public.sdk/samples/vst-hosting/audiohost/CMakeFiles/audiohost.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
jsochacki commented 5 years ago

So I can confirm that master of this git builds successfully but the Steinberg website just has an out of date image with a bug.

scheffle commented 5 years ago

This is fixed with commit 92351625c5b24d5805a3f5adcc718fc748a5720a