JUCE6 gui_extra compiling error concerning glib2

I was building my plugin project with JUCE6 and I had a compilating error. On manjaro with gcc 9.3.0

/usr/bin/ld: build/pluginname.a (include_juce_gui_extra6deelcla.o): undefined reference to symbol 'g_unix_fd_add'
/usr/bin/ld: /usr/lib/libglib-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

I’m also on manjaro and the juce6 branch. I’m compiling right now, I’ll check if it works for me.

I’ve not been using JUCE before really but hope to get more into JUCE now with the vst3 support under Linux.

– edit
I was able to compile a new vst3 project (that does nothing).

– edit2
Tested it in Bitwig, it turns up with a Hello World! window, and is correctly classified according to the Instrument class I chose in Projucer.

– edit 3
Not sure if it is a bug, or just something on the application side that is missing, if closed and re-opened, the window has the same (and correct I assume) size, but the content is not correctly rendered.

– edit 4
Still it might be a size related problem/bug. If the plugin is in a muted/disabled state when closed and later re-opened, the window gets partially rendered (upper left quarter). I will try to see if the same behavior is present in Reaper.

– edit 5
This problem was not present in Reaper. Interestingly, the size of the window when opened under Reaper seems to be just half. So it could actually be that Bitwig reports it incorrectly (at least incompatible to JUCE). I have not seen that happening to other Linux plugins under Bitwig though, so it could be that JUCE misinterprets the size given by Bitwig. I don’t have any scaling in my KDE environment, and I have Bitwig scaling set to 100%. (4k 43" screen so no need to scale anything, at least not upwards…)

– edit 6
I did also try this building from PIP. I opened the example (MIDILogger), and saved that as a juce project in my projects directory. Then just went down to build folder and ran make. It uses both the graphics and gui_basics/extra, and a few other modules as well. It compiled and ran as a standalone applications without any issues. So I still I haven’t come across any errors like the one you reported on. Beginners luck probably, or your use-case is different from mine(s).

– edit 7
The MIDILogger, was able to detect my Phase midi controller, however it runs into:
JUCE Assertion failure in juce_MidiMessageCollector.cpp:54

Looking like something fishy in the JUCE module. Maybe the JUCE people can dig into this (perhaps the collector is a new 6.0 module not yet finalized).

/Per

Which version of linux bitwig are you using? There have been a bunch of fixes in 3.2 beta4 and beta5 which solved repaint and close/open bugs with Linux VST3 for me.

At this point I’m on 3.1.2, but I could try a beta. For now I do the testing in Reaper instead, I haven’t experienced any issues yet with Reaper.

– edit 8 (to the above)

The MIDILogger works well as a vst, its just the standalone version that crash. I would assume its related to midi input from the system, but as my focus is on vst programming I have not dug deep into the problem.

Yeah reaper linux vst3 has been working reliably for us for months now. As a warning though I find reaper the most forgiving of the daws and have found “works in reaper” doesn’t guarantee that the vst3 works elsewhere in Linux. The juce audiopluginhost with juce6 and the bitwig betas both helped me find bugs which didn’t trip up reaper.