SOUL
SOUL copied to clipboard
Build of tools fails under Linux
I use gcc-10.2.1 under Fedora 32 to build SOUL. I met an error during compilation:
$ make
Compiling include_juce_audio_plugin_client_VST3.cpp
Compiling PatchLoaderPlugin.cpp
Dans le fichier inclus depuis ../../Source/../../../include/soul/patch/helper_classes/../../common/soul_ProgramDefinitions.h:21,
depuis ../../Source/../../../include/soul/patch/helper_classes/../../soul_patch.h:36,
depuis ../../Source/../../../include/soul/patch/helper_classes/soul_patch_LoaderPlugin.h:16,
depuis ../../Source/PatchLoaderPlugin.cpp:11:
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h: Dans la fonction membre « choc::value::StringDictionary::Handle choc::value::ValueView::deserialise(choc::value::InputData&, Handler&&, choc::value::Allocator*)::SerialisedStringDictionary::getHandleForString(std::string_view) »:
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h:929:26: erreur: il n'y a pas d'argument pour « assert » qui dépend d'un paramètre du patron, aussi une déclaration de « assert » doit être disponible [-fpermissive]
929 | #define CHOC_ASSERT(x) assert(x);
| ^~~~~~
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h:2268:69: note: dans l'expansion de la macro « CHOC_ASSERT »
2268 | Handle getHandleForString (std::string_view) override { CHOC_ASSERT (false); return {}; }
| ^~~~~~~~~~~
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h:929:26: note: (si vous utilisez « -fpermissive », G++ acceptera votre code, mais permettre l'utilisation d'un nom non déclaré est obsolète)
929 | #define CHOC_ASSERT(x) assert(x);
| ^~~~~~
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h:2268:69: note: dans l'expansion de la macro « CHOC_ASSERT »
2268 | Handle getHandleForString (std::string_view) override { CHOC_ASSERT (false); return {}; }
| ^~~~~~~~~~~
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h: Dans la fonction membre « void choc::value::Value::serialise(OutputStream&) const »:
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h:929:26: erreur: il n'y a pas d'argument pour « assert » qui dépend d'un paramètre du patron, aussi une déclaration de « assert » doit être disponible [-fpermissive]
929 | #define CHOC_ASSERT(x) assert(x);
| ^~~~~~
../../Source/../../../include/soul/patch/helper_classes/../../common/../3rdParty/choc/containers/choc_Value.h:2625:13: note: dans l'expansion de la macro « CHOC_ASSERT »
2625 | CHOC_ASSERT (dictionary.strings.back() == 0);
| ^~~~~~~~~~~
make: *** [Makefile:172: build/intermediate/Debug/PatchLoaderPlugin_3359ebef.o] Error 1
This is likely to be a compiler version problem, can you explain exactly what you've tried to compile and how? I'll try and recreate here and track down the problem
Fedora 34 is out. Maybe upgrade and try this bleeding edge programming language on a more current tool-chain?