DISTRHO / Cardinal

Virtual modular synthesizer plugin
https://cardinal.kx.studio/
GNU General Public License v3.0
2.23k stars 154 forks source link

error: expected unqualified-id before ‘__int128’ { typedef unsigned __int128 type; }; #26

Closed TheGuyWhoo closed 2 years ago

TheGuyWhoo commented 2 years ago

Trying to build on 32 bit linux mint 19 machine, this is the error I get. Any way around it?

make all -C deps make -C dpf/dgl opengl USE_NANOVG_FBO=true make[1]: Entering directory '/home/nickelas/Cardinal/dpf/dgl' make[1]: Entering directory '/home/nickelas/Cardinal/deps' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/nickelas/Cardinal/deps' make all -C plugins make[1]: Entering directory '/home/nickelas/Cardinal/plugins' make[1]: Nothing to be done for 'opengl'. make[1]: Leaving directory '/home/nickelas/Cardinal/dpf/dgl' Compiling plugins.cpp Compiling AmalgamatedHarmonics/src/MuxDeMux.cpp In file included from /usr/include/c++/7/random:49:0, from ../src/Rack/include/random.hpp:3, from ../src/Rack/include/rack.hpp:13, from AmalgamatedHarmonics/src/AH.hpp:5, from plugins.cpp:23: /usr/include/c++/7/bits/random.h:107:26: error: expected unqualified-id before ‘int128’ { typedef unsigned int128 type; }; ^~~~ Compiling AmalgamatedHarmonics/src/Bombe.cpp Makefile:402: recipe for target '../build/plugins/plugins.cpp.o' failed make[1]: [../build/plugins/plugins.cpp.o] Error 1 make[1]: Waiting for unfinished jobs.... make[1]: Leaving directory '/home/nickelas/Cardinal/plugins' Makefile:76: recipe for target 'plugins' failed make: *** [plugins] Error 2

falkTX commented 2 years ago

That is unusual. Can you try with a different compiler? Install some other gcc- and g++- package and set CC and CXX env vars to that. Alternatively try with clang, using like CC=clang CXX=clang++ make or similar.

The error comes from a system include, so I dont think there is much we can do about that one. And I can't reproduce the issue, first time I see it.

TheGuyWhoo commented 2 years ago

The problem is with random.h, __int128 is 64 bit only. However, if you edit random,h and change every instance of the value '128' to '64' it actually builds. I don't know if there's any down sides to this.

falkTX commented 2 years ago

I am closing this one as "wont fix", since I have no idea how to go about fixing this at all, and seems like a compiler issue anyway