soul-lang / SOUL

The SOUL programming language and API
Other
1.71k stars 95 forks source link

Build of tools fails under Linux #53

Open ycollet opened 3 years ago

ycollet commented 3 years ago

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
cesaref commented 3 years ago

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

dromer commented 3 years ago

Fedora 34 is out. Maybe upgrade and try this bleeding edge programming language on a more current tool-chain?