Compiling SC 3.10.2 error

Hello
My OS is UbuntuStudio 19,10
I downloaded SuperCollider-3.10.2-Source-linux.tar.bz2

I have QT5.14.0 installed
Following the README_LINUX.md I use the command:

cmake -DCMAKE_PREFIX_PATH=~/Qt5.14.0/5.14.0/gcc_64 …

The error I get is:

– Building with Sced for gedit 3 (UNIX)
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
UDEV_INCLUDE_DIR
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
used as include directory in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux
UDEV_LIBRARIES
linked by target “hidapi” in directory /home/drumanart/SC_install/SuperCollider-Source/external_libraries/hidapi/linux

– Configuring incomplete, errors occurred!
See also “/home/drumanart/SC_install/SuperCollider-Source/CMakeFiles/CMakeOutput.log”.

If I use
git clone --recurse-submodules https://github.com/SuperCollider/SuperCollider.git
I get the same error

Thanks for help
Martin

it looks like you haven’t installed libudev, which is listed as a recommended package in the readme. If you don’t want HID support (which requires libudev) you will need to pass -DSC_HIDAPI=OFF when you invoke CMake.

Yes I had to install libudev-dev then the code compiled and installed SC without errors.
But still I can’t lunch scide

Martin

I did: sudo apt install supercollider-ide
and now it works

Thanks Martin

What happens (in terminal) when you do?

$ scide
... the stuff that gets printed here, we need to know...

hjh

if I run scide:

SC FFT global init: cosTable initialised.
compiling class library…
Found 718 primitives.
Compiling directory ‘/usr/local/share/SuperCollider/SCClassLibrary’
Compiling directory ‘/usr/local/share/SuperCollider/Extensions’
Compiling directory ‘/home/drumanart/.local/share/SuperCollider/Extensions’
numentries = 667002 / 7397950 = 0.09
4025 method selectors, 1838 classes
method table size 9780360 bytes, big table size 59183600
Number of Symbols 9396
Byte Code Size 268033
compiled 225 files in 0.09 seconds

Info: 4 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

compile done
localhost : setting clientID to 0.
internal : setting clientID to 0.
Class tree inited in 0.0 seconds
ERROR: Message ‘meter’ not understood.
RECEIVER:
Instance of Server { (0x55787458bd58, gc=3C, fmt=00, flg=00, set=05)
instance variables [30]
name : Symbol ‘localhost’
addr : instance of NetAddr (0x557874583888, size=4, set=2)
clientID : Integer 0
isLocal : true
inProcess : false
sendQuit : nil
remoteControlled : false
maxNumClients : nil
options : instance of ServerOptions (0x557874587b98, size=39, set=6)
latency : Float 0.200000 9999999A 3FC99999
dumpMode : Integer 0
nodeAllocator : instance of NodeIDAllocator (0x557874588928, size=7, set=3)
controlBusAllocator : instance of ContiguousBlockAllocator (0x5578745887c8, size=6, set=3)
audioBusAllocator : instance of ContiguousBlockAllocator (0x557874586fe8, size=6, set=3)
bufferAllocator : instance of ContiguousBlockAllocator (0x5578745874b8, size=6, set=3)
scopeBufferAllocator : instance of StackNumberAllocator (0x557874583008, size=4, set=2)
tree : nil
defaultGroup : instance of Group (0x5578745876c8, size=5, set=3)
defaultGroups : instance of Array (0x55787458c228, size=1, set=2)
syncThread : nil
syncTasks : nil
window : nil
scopeWindow : nil
emacsbuf : nil
volume : instance of Volume (0x55787458cc18, size=15, set=4)
recorder : instance of Recorder (0x55787458d328, size=14, set=4)
statusWatcher : instance of ServerStatusWatcher (0x55787458bf88, size=20, set=5)
pid : nil
serverInterface : nil
pidReleaseCondition : instance of Condition (0x55787458d5f8, size=2, set=2)
}
ARGS:
PATH: /home/drumanart/.config/SuperCollider/startup.scd

PROTECTED CALL STACK:
Meta_MethodError:new 0x55787474a640
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = localhost
Meta_DoesNotUnderstandError:new 0x55787474c600
arg this = DoesNotUnderstandError
arg receiver = localhost
arg selector = meter
arg args = [ ]
Object:doesNotUnderstand 0x5578743f47c0
arg this = localhost
arg selector = meter
arg args = nil
a FunctionDef 0x5578742c9508
sourceCode = “// =====================================================================
// SuperCollider Workspace
// =====================================================================
Server.default = Server.local;
s = Server.default;
s.options.blockSize = 64; // default 64
s.options.sampleRate = 441000;
s.options.numOutputBusChannels = 8;
s.options.numInputBusChannels = 8;
s.options.maxNodes = 65536;
s.options.memSize = 8192; // 1048576
s.options.maxSynthDefs = 16384;
s.options.device = “M1010”;
s.b…etc…”
a FunctionDef 0x55787470b6c0
sourceCode = “”
Function:prTry 0x55787482ab40
arg this = a Function
var result = nil
var thread = a Thread
var next = nil
var wasInProtectedFunc = false

CALL STACK:
DoesNotUnderstandError:reportError
arg this =
Nil:handleError
arg this = nil
arg error =
Thread:handleError
arg this =
arg error =
Object:throw
arg this =
Function:protect
arg this =
arg handler =
var result =
Interpreter:executeFile
arg this =
arg pathName = “/home/drumanart/.config/Supe…”
arg args = [*0]
var result = nil
var saveExecutingPath = nil
ArrayedCollection:do
arg this = [*2]
arg function =
var i = 1
Platform:loadStartupFiles
arg this =
LinuxPlatform:startup
arg this =
Main:startup
arg this =
var didWarnOverwrite = false
^^ The preceding error dump is for ERROR: Message ‘meter’ not understood.
RECEIVER: localhost

ERROR: A primitive was not bound. 0 717
Instance of Method { (0x557874683d40, gc=01, fmt=00, flg=11, set=04)
instance variables [15]
raw1 : Float 0.000000 00000000 0070000C
raw2 : Float 0.000000 00000200 02010002
code : instance of Int8Array (0x557874684040, size=4, set=2)
selectors : nil
constants : nil
prototypeFrame : instance of Array (0x557874683f80, size=2, set=2)
context : nil
argNames : instance of SymbolArray (0x557874683ec0, size=2, set=2)
varNames : nil
sourceCode : nil
ownerClass : class Meta_ScIDE (0x557874669a40)
name : Symbol ‘prConnect’
primitiveName : Symbol ‘_ScIDE_Connect’
filenameSymbol : Symbol ‘/usr/local/share/SuperCollider/SCClassLibrary/scide_scqt/ScIDE.sc’
charPos : Integer 10413
}
ERROR: Primitive ‘__none’ failed.
Failed.
RECEIVER:
nil
CALL STACK:
MethodError:reportError
arg this =
Nil:handleError
arg this = nil
arg error =
Thread:handleError
arg this =
arg error =
Object:throw
arg this =
Object:primitiveFailed
arg this = nil
Meta_ScIDE:prConnect
arg this = nil
arg ideName = nil
Meta_ScIDE:connect
arg this =
arg ideName = “SCIde_3832”
Process:interpretCmdLine
arg this =
^^ The preceding error dump is for ERROR: Primitive ‘__none’ failed.
Failed.
RECEIVER: nil

Booting server ‘localhost’ on address 127.0.0.1:57110.
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is “Don’t restrict self connect requests”
audio_reservation_init
Acquire audio card Audio0
creating alsa driver … hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
SC FFT global init: cosTable initialised.
JackDriver: client name is ‘M1010’
SC_AudioDriver: sample rate = 48000.000000, driver’s block size = 1024
JackDriver: connected system:capture_1 to M1010:in_1
JackDriver: connected system:capture_2 to M1010:in_2
JackDriver: connected M1010:out_1 to system:playback_1
JackDriver: connected M1010:out_2 to system:playback_2
JackDriver: connected M1010:out_3 to system:playback_3
JackDriver: connected M1010:out_4 to system:playback_4
JackDriver: connected M1010:out_5 to system:playback_5
JackDriver: connected M1010:out_6 to system:playback_6
JackDriver: connected M1010:out_7 to system:playback_7
JackDriver: connected M1010:out_8 to system:playback_8
SuperCollider 3 server ready.
JackDriver: max output latency 42.7 ms
Requested notification messages from server ‘localhost’
localhost: server process’s maxLogins (1) matches with my options.
localhost: keeping clientID (0) as confirmed by server process.
Shared memory server interface initialized

thanks

Based on the SC startup error messages, it looks like a version mismatch between some components.

I did: sudo apt install supercollider-ide
and now it works

I have no idea which version that is.

I’m using Ubuntu Studio 18.04. If I go to synaptic and search for supercollider-ide, it tells me that version 3.8.0 is available.

But if you’re building SC from source, you’ve probably built 3.10.x.

Pretty sure that we can’t support running an older version of the IDE against a newer version of sclang.

So – if you built from source, and scide was not available, then it’s rather an important question – what were your build settings? (Initial question was about a build failure, but I don’t see any listing of your build configuration.)

$ cd blah/blah/supercollider/build
$ cmake .. -L
... copy/paste all this output

Because, by default, a normal build should give you scide. If it didn’t, then something is wrong with the build – and a better solution would be to fix the build, rather than install a mismatched version of one component from somewhere else.

ERROR: Message ‘meter’ not understood.

This is suspicious. If you have Qt, and you successfully told the build system where to find Qt, then all the GUI stuff should be there.

ERROR: A primitive was not bound. 0 717

name : Symbol ‘prConnect’
primitiveName : Symbol ‘_ScIDE_Connect’

That’s very suspicious. Either a version mismatch, or maybe sclang is built without IDE support (which would support what I was saying about fixing the build).

Are you certain you’re building with Qt and IDE support? The cmake .. -L command above would confirm.

hjh

the version is: SuperCollider 3.10.0

cd build/
393 cmake -DCMAKE_PREFIX_PATH= ~/Qt5.14.0/5.14.0/gcc_64 …
394 make
395 sudo make install

cmake… -L
drumanart@drumanart:~/SuperCollider/build$ cmake … -L
CMake Warning (dev) at CMakeLists.txt:1 (project):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run “cmake --help-policy CMP0048” for policy details. Use the cmake_policy
command to set the policy and suppress this warning.

The following variable(s) would be set to empty:

CMAKE_PROJECT_VERSION
CMAKE_PROJECT_VERSION_MAJOR
CMAKE_PROJECT_VERSION_MINOR
CMAKE_PROJECT_VERSION_PATCH

This warning is for project developers. Use -Wno-dev to suppress it.

– SuperCollider Version: 3.10.4-rc1
– Building from branch develop, commit hash is 2c1137663
– Build type defaulting to “RelWithDebInfo”
– Not compiling SC IDE, because it requires Qt but SC_QT is False
– Using bundled boost
– Using bundled yaml-cpp
– HIDAPI components:
– linux hidraw
– libudev stable: 1
– Found UDev: /usr/lib/x86_64-linux-gnu/libudev.so
– include: /usr/include
– hidapi_parser
– Building with HID support
– Using green fft
– Found jack: /usr/lib/x86_64-linux-gnu/libjack.so
– Audio API: jack
– Could NOT find ALSA (missing: ALSA_LIBRARY ALSA_INCLUDE_DIR)
– Compiling with Ableton Link support
– Building with Sced for gedit 3 (UNIX)
– Configuring done
– Generating done
– Build files have been written to: /home/drumanart/SuperCollider/build
– Cache values
AUDIOAPI:STRING=default
BUILD_TESTING:BOOL=ON
CCacheExectuable:FILEPATH=CCacheExectuable-NOTFOUND
CMAKE_BUILD_TYPE:STRING=
CMAKE_INSTALL_PREFIX:PATH=/usr/local
ENABLE_TESTSUITE:BOOL=ON
FFT_GREEN:BOOL=OFF
FINAL_BUILD:BOOL=OFF
FORTIFY:BOOL=OFF
GC_SANITYCHECK:BOOL=OFF
HIDAPI:STRING=default
HID_DEBUG_PARSER:BOOL=OFF
HID_EXAMPLE_OSC:BOOL=OFF
HID_EXAMPLE_TEST:BOOL=OFF
HID_INSTALL_HUT:BOOL=ON
INSTALL_HELP:BOOL=ON
LIBSCSYNTH:BOOL=OFF
LTO:BOOL=OFF
NATIVE:BOOL=OFF
NOVA_SIMD:BOOL=ON
NO_AVAHI:BOOL=OFF
NO_GPL3:BOOL=OFF
NO_LIBSNDFILE:BOOL=OFF
NO_X11:BOOL=OFF
Qt5_DIR:PATH=Qt5_DIR-NOTFOUND
SCLANG_SERVER:BOOL=ON
SC_ABLETON_LINK:BOOL=ON
SC_DOC_RENDER:BOOL=OFF
SC_ED:BOOL=ON
SC_EL:BOOL=ON
SC_IDE:BOOL=ON
SC_MEMORY_DEBUGGING:BOOL=OFF
SC_QT:BOOL=OFF
SC_SYMLINK_CLASSLIB:BOOL=OFF
SC_USE_QTWEBENGINE:BOOL=ON
SC_VIM:BOOL=ON
SN_MEMORY_DEBUGGING:BOOL=OFF
SSE:BOOL=ON
SSE2:BOOL=ON
SUPERNOVA:BOOL=ON
SYSTEM_BOOST:BOOL=OFF
SYSTEM_YAMLCPP:BOOL=OFF
UDEV_INCLUDE_DIR:PATH=/usr/include
UDEV_LIBRARIES:FILEPATH=/usr/lib/x86_64-linux-gnu/libudev.so
auxresourcesdir:STRING=share/SuperCollider
pkgcfg_lib__JACK_jack:FILEPATH=/usr/lib/x86_64-linux-gnu/libjack.so

Martin

Not compiling SC IDE, because it requires Qt but SC_QT is False

So there is why you didn’t have the IDE, and why s.meter threw an error.

Qt5_DIR:PATH=Qt5_DIR-NOTFOUND

Whichever directory you specified for Qt, it seems not to have been the right one… Maybe the ~ for home directory is not allowed here? Try a fully qualified path, e.g. /home/username/Qt5.14.0/5.14.0/gcc_64 (of course, with your username).

Related, but not directly relevant:

Could NOT find ALSA (missing: ALSA_LIBRARY ALSA_INCLUDE_DIR)

So, no MIDI support, I’d wager.

hjh

Ok my failure was that I had to install some more QT5 libraries. Now the code compiled without errors.

But still connecting a USB unit I get errors:

~pp = SerialPort("/dev/ttyUSB0", 57600, crtscts: true);

ERROR: Primitive ‘_SerialPort_Open’ failed.
caught exception ‘open: Permission denied’ in primitive in method SerialPort:prOpen
RECEIVER:
Instance of SerialPort { (0x55bd8fd868f8, gc=2C, fmt=00, flg=00, set=02)
instance variables [4]
dataptr : nil
semaphore : instance of Semaphore (0x55bd8fc2fa18, size=2, set=2)
isOpen : false
doneAction : nil
}
PATH: /home/drumanart/SC_WORK/CARMEN2019/CARMEN19_REV_GUI.scd
CALL STACK:
MethodError:reportError
arg this =
Nil:handleError
arg this = nil
arg error =
Thread:handleError
arg this =
arg error =
Object:throw
arg this =
Object:primitiveFailed
arg this =
SerialPort:prInit
arg this =
arg args = [*8]
< closed FunctionDef > (no arguments or variables)
Interpreter:interpretPrintCmdLine
arg this =
var res = nil
var func =
var code = “(
~pp= SerialPort(”/dev/ttyU…"
var doc = nil
var ideClass =
Process:interpretPrintCmdLine
arg this =
^^ The preceding error dump is for ERROR: Primitive ‘_SerialPort_Open’ failed.
caught exception ‘open: Permission denied’ in primitive in method SerialPort:prOpen
RECEIVER: a SerialPort

Also loading the last session want work and I can’t find the startup.scd anymore

Thanks Martin

Hello
Has anybody a hint because of the error of ttyUSB0 as I mentioned above.

Thanks Martin

The key bits here are:

Primitive ‘_SerialPort_Open’ failed.

^^ that’s where it went wrong.

caught exception ‘open: Permission denied’

^^ that’s why it went wrong.

If I go right now to my phone’s chrome browser and type “ttyusb0” into the search bar, the number 1 suggestion to search for is “ttyusb0 permission denied” – so all the information was there for you to search and it’s a well known issue.

Permission problems are pretty common in Linux – which is for your protection: apps are not allowed by default to touch everything.

For convenience, I’ll send the top link, but your problem might not be the same one, so you might have to search it yourself later. Cannot open /dev/ttyUSB0: Permission denied · Issue #26 · esp8266/source-code-examples · GitHub

hjh

Thanks for this thread! It helped me fix a similar build error in compiling sc for raspi. Will link blog post about the build soon. Chz!