HISE Logo Forum
    • Categories
    • Register
    • Login

    Debug vs Release

    Scheduled Pinned Locked Moved General Questions
    54 Posts 4 Posters 6.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • d.healeyD
      d.healey
      last edited by d.healey

      Now I disabled link time optimization and Reaper loads up and scans the plugin, the console output includes

      Initialising MainController
      Checking license
      Load images
      Load embedded audio files
      Load samplemaps
      Restoring main container
      JUCE Assertion failure in LFOModulator.h:249
      JUCE Assertion failure in LFOModulator.h:249
      JUCE Assertion failure in ModulatorSamplerData.cpp:219
      JUCE Assertion failure in ModulatorSamplerSound.cpp:559
      JUCE Assertion failure in ModulatorSamplerSound.cpp:559
      JUCE Assertion failure in ModulatorSamplerSound.cpp:559
      

      That last line is repeated a billion times. Then

      Compiling all scripts
      Adding plugin parameters
      Restoring global settings
      Setting disk mode
      Samples are validated. Skipping reference check
      Loading samples
      JUCE Assertion failure in MainControllerHelpers.cpp:349
      

      I also get this line JUCE Assertion failure in ModulatorSamplerSound.cpp:559 when I insert an instance of the plugin. If I close the plugin's interface in Reaper I get this (reaper:7545): Gdk-WARNING **: 12:53:41.145: gdk_window_set_user_time called on non-toplevel.

      And when I close Reaper, with or without the plugin's UI open I get this:

      JUCE Assertion failure in LockHelpers.cpp:54
      JUCE Assertion failure in LockHelpers.cpp:54
      JUCE Assertion failure in LockHelpers.cpp:54
      JUCE Assertion failure in LockHelpers.cpp:54
      JUCE Assertion failure in KillStateHandler.cpp:256
      JUCE Assertion failure in MainControllerHelpers.cpp:349
      *** Leaked objects detected: 1 instance(s) of class ExternalScriptFile
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 19 instance(s) of class GlyphInfo
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 30 instance(s) of class ActionBase
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 3 instance(s) of class MidiList
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 2 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 11 instance(s) of class ScriptButton
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 3 instance(s) of class ScriptingSynth
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 2 instance(s) of class ScriptingMidiProcessor
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 2 instance(s) of class ScriptingModulator
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class PathObject
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 12 instance(s) of class ExternalFileData
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 175 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 175 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 590 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 3808 instance(s) of class Statement
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 39 instance(s) of class Object
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 3 instance(s) of class ScriptFloatingTile
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 7 instance(s) of class ScriptTable
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 8 instance(s) of class ScriptComboBox
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 38 instance(s) of class ScriptPanel
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 38 instance(s) of class GraphicsObject
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 95 instance(s) of class ScriptComponent
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1028 instance(s) of class ModulatorState
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 3 instance(s) of class SimpleEnvelope
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 10 instance(s) of class ProcessorValueConverter
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class VelocityModulator
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 2 instance(s) of class SliderPackProcessor
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 24 instance(s) of class LookupTableProcessor
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 24 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 16 instance(s) of class DownsampledSmoother
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 199 instance(s) of class DebugInformation
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class Colours
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class Console
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 8 instance(s) of class SelectedItemSet<SelectableItemType>
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class Synth
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class SelectedItemSet<SelectableItemType>
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class Engine
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class Message
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class Content
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 4 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 191 instance(s) of class ApiClass
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class HiseJavascriptEngine
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 16 instance(s) of class ModChainWithBuffer
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 21 instance(s) of class ModulatorChain
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 21 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 21 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 21 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 25 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 30 instance(s) of class PolyphonyManager
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 48 instance(s) of class Modulator
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 48 instance(s) of class Modulation
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 69 instance(s) of class FactoryType
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class MidiProcessor
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 56 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 81 instance(s) of class Path
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class FTFaceWrapper
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class FTLibWrapper
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class CustomTypeface
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class Typeface
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 6 instance(s) of class Font
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 221 instance(s) of class SafeChangeBroadcaster
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 221 instance(s) of class FlagTimer
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 221 instance(s) of class AsyncBroadcaster
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 36 instance(s) of class CodeDocument
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 36 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class TimerPimpl
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 10 instance(s) of class MidiBuffer
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 365 instance(s) of class AudioBuffer
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class LibraryLoader
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class StaticDspFactory
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 5 instance(s) of class SharedResourcePointer
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 583 instance(s) of class DynamicObject
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 36 instance(s) of class UndoManager
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 72 instance(s) of class OwnedArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 343 instance(s) of class AsyncUpdater
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 177 instance(s) of class BigInteger
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 171 instance(s) of class SharedObject
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 1 instance(s) of class MemoryBlock
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 742 instance(s) of class WaitableEvent
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 2 instance(s) of class Random
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 30 instance(s) of class Image
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      *** Leaked objects detected: 30 instance(s) of class StringArray
      JUCE Assertion failure in juce_LeakedObjectDetector.h:88
      malloc_consolidate(): invalid chunk size
      Aborted (core dumped)
      

      And the core dump:

      [Thread debugging using libthread_db enabled]
      Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
      Core was generated by `/opt/REAPER/reaper'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
      51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
      [Current thread is 1 (Thread 0x7f3fb2373d00 (LWP 7474))]
      (gdb) bt
      #0  0x00007f3fb0d5de97 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
      #1  0x00007f3fb0d5f801 in __GI_abort () at abort.c:79
      #2  0x00007f3fb0da8897 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f3fb0ed5b9a "%s\n") at ../sysdeps/posix/libc_fatal.c:181
      #3  0x00007f3fb0daf90a in malloc_printerr (str=str@entry=0x7f3fb0ed73f0 "malloc_consolidate(): invalid chunk size") at malloc.c:5350
      #4  0x00007f3fb0dafbae in malloc_consolidate (av=av@entry=0x7f3fb110ac40 <main_arena>) at malloc.c:4441
      #5  0x00007f3fb0db37d8 in _int_malloc (av=av@entry=0x7f3fb110ac40 <main_arena>, bytes=bytes@entry=2049) at malloc.c:3703
      #6  0x00007f3fb0db48f5 in _int_realloc (av=av@entry=0x7f3fb110ac40 <main_arena>, oldp=oldp@entry=0x1b113df0, oldsize=oldsize@entry=272, nb=nb@entry=2064) at malloc.c:4570
      #7  0x00007f3fb0db7f9b in __GI___libc_realloc (oldmem=0x1b113e00, bytes=bytes@entry=2048) at malloc.c:3230
      #8  0x00007f3fa7831cd5 in juce::HeapBlock<char, true>::realloc<unsigned long>(unsigned long, unsigned long) (elementSize=1, newNumElements=2048, this=0x7fff3230b400) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/memory/juce_HeapBlock.h:275
      #9  0x00007f3fa7831cd5 in juce::MemoryBlock::setSize(unsigned long, bool) (this=0x7fff3230b400, newSize=2048, initialiseToZero=<optimised out>) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/memory/juce_MemoryBlock.cpp:127
      #10 0x00007f3fa785e4a4 in juce::MemoryOutputStream::prepareToWrite(unsigned long) (this=this@entry=0x7fff3230b3e0, numBytes=numBytes@entry=1358) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/streams/juce_MemoryOutputStream.cpp:84
      #11 0x00007f3fa785e613 in juce::MemoryOutputStream::write(void const*, unsigned long) (this=0x7fff3230b3e0, buffer=0x7fff32309380, howMany=1358) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/streams/juce_MemoryOutputStream.cpp:109
      #12 0x00007f3fa782e3f0 in juce::OutputStream::writeFromInputStream(juce::InputStream&, long long) (this=0x7fff3230b3e0, source=..., numBytesToWrite=<optimised out>) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/streams/juce_OutputStream.cpp:266
      #13 0x00007f3fa783cfd4 in juce::operator<<(juce::OutputStream&, juce::InputStream&) (stream=..., streamToRead=...) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/streams/juce_OutputStream.cpp:340
      #14 0x00007f3fa7882289 in juce::InputStream::readEntireStreamAsString() (this=this@entry=0x7fff3230b470) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/streams/juce_InputStream.cpp:212
      #15 0x00007f3fa7882363 in juce::File::loadFileAsString() const (this=this@entry=Python Exception <class 'RecursionError'> maximum recursion depth exceeded while getting the str of an object: 
      0x7fff3230b538) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/files/juce_File.cpp:555
      #16 0x00007f3fa784be20 in juce::File::readLines(juce::StringArray&) const (this=this@entry=Python Exception <class 'RecursionError'> maximum recursion depth exceeded while getting the str of an object: 
      0x7fff3230b538, destLines=...) at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/files/juce_File.cpp:560
      #17 0x00007f3fa784bee2 in juce::readPosixConfigFileValue(char const*, char const*) (file=file@entry=0x7f3fa80ca055 "/proc/self/status", key=key@entry=0x7f3fa80ca04b "TracerPid") at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/native/juce_posix_SharedCode.h:1112
      #18 0x00007f3fa784c1bf in juce::juce_isRunningUnderDebugger() () at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/native/juce_linux_SystemStats.cpp:201
      #19 0x00007f3fa789edf8 in juce::LeakedObjectDetector<juce::StringPairArray>::LeakCounter::~LeakCounter() (this=0x7f3fa898f5b8 <juce::LeakedObjectDetector<juce::StringPairArray>::getCounter()::counter>, __in_chrg=<optimised out>)
          at /media/dave/Work 1/HISE Development Builds/HISE/JUCE/modules/juce_core/memory/juce_LeakedObjectDetector.h:88
      #20 0x00007f3fb0d62041 in __run_exit_handlers (status=0, listp=0x7f3fb110a718 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108
      #21 0x00007f3fb0d6213a in __GI_exit (status=<optimised out>) at exit.c:139
      #22 0x00007f3fb0d40b9e in __libc_start_main (main=0x4121e0, argc=1, argv=0x7fff3230b748, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fff3230b738) at ../csu/libc-start.c:344
      #23 0x000000000041819a in _start ()
      
      1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart
        last edited by

        So, basically back to beginning? I think I am running out of ideas what to do here - these crash logs do not even reach the HISE code and it's obviously something very fishy.

        I'll try building your project now on Linux and see how it goes.

        d.healeyD 1 Reply Last reply Reply Quote 1
        • d.healeyD
          d.healey @Christoph Hart
          last edited by

          @christoph-hart I keep seeing MainController mentioned, and that appears in the compilation warnings too, could there be some connection there?

          1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart
            last edited by

            Well, MainController is the main controller that handles the threading so it's pretty likely that this is the problem, but it's also a BIG class :)

            I think I need to reproduce this and debug it for myself.

            d.healeyD 1 Reply Last reply Reply Quote 1
            • d.healeyD
              d.healey @Christoph Hart
              last edited by

              @christoph-hart Yeah it's always hard when you can't reproduce the issue. I'm going to try working backwards, I have a copy of my woodwind project, I'm going to try to remove bits from it a piece at a time until it opens in Reaper without issue.

              1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey
                last edited by d.healey

                Well something strange is definitely happening. I dismantled the project piece by piece. I had nothing left but an empty sampler (no modulators) and the main interface script and it was still causing the issue. I deleted the sampler and now the plugin loads in Reaper. So I reverted to the version before I removed the sampler and loaded an empty sample map, plugin once again crashes Reaper.

                So I went back to my working test project that had nothing but a sine wave generator interface script. I took out the sine wave generator and put in a sampler, and the plugin now triggers the issue in Reaper. So this is progress :)

                One thing I noticed is as soon as I added the sampler it gave a warning

                Preset:! Velocity Modulator was not found.
                Preset:! Velocity Modulator was not found.
                Preset:! Velocity Modulator was not found.
                
                1 Reply Last reply Reply Quote 0
                • Christoph HartC
                  Christoph Hart
                  last edited by

                  There was some weird old thumbnail cache code that crashed on my system. Please try again :)

                  You need to rebuild everything after the merge - Projucer and HISE, then clean and export again.

                  1 Reply Last reply Reply Quote 1
                  • d.healeyD
                    d.healey
                    last edited by

                    I'm hitting some problems building Projucer (I'm doing this on my Linux Mint 19 machine).

                    Linking Projucer - App
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::ClipboardHelpers::requestSelectionContent(_XDisplay*, juce::String&, unsigned long, unsigned long)':
                    include_juce_gui_basics.cpp:(.text+0x5990): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x59ba): undefined reference to `XConvertSelection'
                    include_juce_gui_basics.cpp:(.text+0x59ea): undefined reference to `XCheckTypedWindowEvent'
                    include_juce_gui_basics.cpp:(.text+0x5a8f): undefined reference to `XGetWindowProperty'
                    include_juce_gui_basics.cpp:(.text+0x5ac6): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text+0x5af6): undefined reference to `XDeleteProperty'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxEventLoop::CallbackFunction<juce::XWindowSystem::initialiseXDisplay()::{lambda(int)#1}>::operator()(int)':
                    include_juce_gui_basics.cpp:(.text+0x68b0): undefined reference to `XPending'
                    include_juce_gui_basics.cpp:(.text+0x68c6): undefined reference to `XNextEvent'
                    include_juce_gui_basics.cpp:(.text+0x68d3): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x690f): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x691b): undefined reference to `XPending'
                    include_juce_gui_basics.cpp:(.text+0x692c): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x697f): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::ClipboardHelpers::initSelectionAtoms(_XDisplay*) [clone .part.187]':
                    include_juce_gui_basics.cpp:(.text+0x69a5): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x69bd): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x69d5): undefined reference to `XInternAtom'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::ClipboardHelpers::handleSelection(XSelectionRequestEvent&)':
                    include_juce_gui_basics.cpp:(.text+0x6a7b): undefined reference to `XSendEvent'
                    include_juce_gui_basics.cpp:(.text+0x6b2f): undefined reference to `XChangeProperty'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::sendExternalDragAndDropMessage(XClientMessageEvent&, unsigned long) [clone .isra.207]':
                    include_juce_gui_basics.cpp:(.text+0x6c58): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x6c6e): undefined reference to `XSendEvent'
                    include_juce_gui_basics.cpp:(.text+0x6c80): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x6c9a): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XSHMHelpers::isShmAvailable(_XDisplay*)':
                    include_juce_gui_basics.cpp:(.text+0x78a3): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x78ba): undefined reference to `XShmQueryVersion'
                    include_juce_gui_basics.cpp:(.text+0x78c6): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x7907): undefined reference to `XSetErrorHandler'
                    include_juce_gui_basics.cpp:(.text+0x794c): undefined reference to `XShmCreateImage'
                    include_juce_gui_basics.cpp:(.text+0x798b): undefined reference to `XSetErrorHandler'
                    include_juce_gui_basics.cpp:(.text+0x79d6): undefined reference to `XSync'
                    include_juce_gui_basics.cpp:(.text+0x79e1): undefined reference to `XShmAttach'
                    include_juce_gui_basics.cpp:(.text+0x79ed): undefined reference to `XFlush'
                    include_juce_gui_basics.cpp:(.text+0x7a11): undefined reference to `XSync'
                    include_juce_gui_basics.cpp:(.text+0x7a1c): undefined reference to `XShmDetach'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::X11ErrorHandling::installXErrorHandlers()':
                    include_juce_gui_basics.cpp:(.text+0x391ec): undefined reference to `XSetIOErrorHandler'
                    include_juce_gui_basics.cpp:(.text+0x391ff): undefined reference to `XSetErrorHandler'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::X11ErrorHandling::removeXErrorHandlers()':
                    include_juce_gui_basics.cpp:(.text+0x3921c): undefined reference to `XSetIOErrorHandler'
                    include_juce_gui_basics.cpp:(.text+0x39233): undefined reference to `XSetErrorHandler'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XWindowSystem::XWindowSystem()':
                    include_juce_gui_basics.cpp:(.text+0x3928e): undefined reference to `XSetIOErrorHandler'
                    include_juce_gui_basics.cpp:(.text+0x392a1): undefined reference to `XSetErrorHandler'
                    include_juce_gui_basics.cpp:(.text+0x392c9): undefined reference to `XInitThreads'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XWindowSystem::~XWindowSystem()':
                    include_juce_gui_basics.cpp:(.text+0x39326): undefined reference to `XSetIOErrorHandler'
                    include_juce_gui_basics.cpp:(.text+0x3933d): undefined reference to `XSetErrorHandler'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XWindowSystem::displayUnref()':
                    include_juce_gui_basics.cpp:(.text+0x393ac): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x393bb): undefined reference to `XDestroyWindow'
                    include_juce_gui_basics.cpp:(.text+0x393d3): undefined reference to `XSync'
                    include_juce_gui_basics.cpp:(.text+0x393e0): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x393e8): undefined reference to `XCloseDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3942a): undefined reference to `XDestroyWindow'
                    include_juce_gui_basics.cpp:(.text+0x39442): undefined reference to `XSync'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XWindowSystem::initialiseXDisplay()':
                    include_juce_gui_basics.cpp:(.text+0x3949a): undefined reference to `XrmUniqueQuark'
                    include_juce_gui_basics.cpp:(.text+0x394e6): undefined reference to `XCreateWindow'
                    include_juce_gui_basics.cpp:(.text+0x394fb): undefined reference to `XSync'
                    include_juce_gui_basics.cpp:(.text+0x39503): undefined reference to `XConnectionNumber'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XWindowSystem::displayRef()':
                    include_juce_gui_basics.cpp:(.text+0x39623): undefined reference to `XOpenDisplay'
                    include_juce_gui_basics.cpp:(.text+0x39640): undefined reference to `XOpenDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LookAndFeel::getMouseCursorFor(juce::Component&)':
                    include_juce_gui_basics.cpp:(.text+0x39779): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x39784): undefined reference to `XFreeCursor'
                    include_juce_gui_basics.cpp:(.text+0x3978c): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x39856): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XWindowSystem::destroyXDisplay()':
                    include_juce_gui_basics.cpp:(.text+0x398b5): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x398c4): undefined reference to `XDestroyWindow'
                    include_juce_gui_basics.cpp:(.text+0x398dc): undefined reference to `XSync'
                    include_juce_gui_basics.cpp:(.text+0x39902): undefined reference to `XDestroyWindow'
                    include_juce_gui_basics.cpp:(.text+0x3991a): undefined reference to `XSync'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Atoms::Atoms(_XDisplay*)':
                    include_juce_gui_basics.cpp:(.text+0x399cc): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x399e3): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x399fb): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x39a13): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x39a2b): undefined reference to `XInternAtom'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o:include_juce_gui_basics.cpp:(.text+0x39a43): more undefined references to `XInternAtom' follow
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Atoms::getName(_XDisplay*, unsigned long)':
                    include_juce_gui_basics.cpp:(.text+0x39d10): undefined reference to `XGetAtomName'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Atoms::isMimeTypeFile(_XDisplay*, unsigned long)':
                    include_juce_gui_basics.cpp:(.text+0x39d5f): undefined reference to `XGetAtomName'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::GetXProperty::GetXProperty(_XDisplay*, unsigned long, unsigned long, long, long, bool, unsigned long)':
                    include_juce_gui_basics.cpp:(.text+0x39dff): undefined reference to `XGetWindowProperty'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::SystemClipboard::copyTextToClipboard(juce::String const&)':
                    include_juce_gui_basics.cpp:(.text+0x39e88): undefined reference to `XSetSelectionOwner'
                    include_juce_gui_basics.cpp:(.text+0x39ea0): undefined reference to `XSetSelectionOwner'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::SystemClipboard::getTextFromClipboard()':
                    include_juce_gui_basics.cpp:(.text+0x39fe3): undefined reference to `XGetSelectionOwner'
                    include_juce_gui_basics.cpp:(.text+0x3a04e): undefined reference to `XGetSelectionOwner'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::KeyPress::isKeyCurrentlyDown(int)':
                    include_juce_gui_basics.cpp:(.text+0x3a266): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3a271): undefined reference to `XKeysymToKeycode'
                    include_juce_gui_basics.cpp:(.text+0x3a2a0): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3a2de): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::PixmapHelpers::createColourPixmapFromImage(_XDisplay*, juce::Image const&)':
                    include_juce_gui_basics.cpp:(.text+0x3a95e): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3aa38): undefined reference to `XCreateImage'
                    include_juce_gui_basics.cpp:(.text+0x3aa69): undefined reference to `XCreatePixmap'
                    include_juce_gui_basics.cpp:(.text+0x3aa7b): undefined reference to `XCreateGC'
                    include_juce_gui_basics.cpp:(.text+0x3aaa0): undefined reference to `XPutImage'
                    include_juce_gui_basics.cpp:(.text+0x3aaaf): undefined reference to `XFreeGC'
                    include_juce_gui_basics.cpp:(.text+0x3aac9): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3ab12): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::PixmapHelpers::createMaskPixmapFromImage(_XDisplay*, juce::Image const&)':
                    include_juce_gui_basics.cpp:(.text+0x3ab5e): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3ac6d): undefined reference to `XCreatePixmapFromBitmapData'
                    include_juce_gui_basics.cpp:(.text+0x3ac88): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3ad41): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::ModifierKeys::getCurrentModifiersRealtime()':
                    include_juce_gui_basics.cpp:(.text+0x3ade2): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3ae2a): undefined reference to `XQueryPointer'
                    include_juce_gui_basics.cpp:(.text+0x3ae4e): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseInputSource::getCurrentRawMousePosition()':
                    include_juce_gui_basics.cpp:(.text+0x3af68): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3afa9): undefined reference to `XQueryPointer'
                    include_juce_gui_basics.cpp:(.text+0x3b1f0): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3b256): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseInputSource::setRawMousePosition(juce::Point<float>)':
                    include_juce_gui_basics.cpp:(.text+0x3b33c): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3b43d): undefined reference to `XWarpPointer'
                    include_juce_gui_basics.cpp:(.text+0x3b449): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3b4c7): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Desktop::setScreenSaverEnabled(bool)':
                    include_juce_gui_basics.cpp:(.text+0x3b52b): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3b54d): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3b5c3): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::juce_createKeyProxyWindow(juce::ComponentPeer*)':
                    include_juce_gui_basics.cpp:(.text+0x3b938): undefined reference to `XCreateWindow'
                    include_juce_gui_basics.cpp:(.text+0x3b94f): undefined reference to `XMapWindow'
                    include_juce_gui_basics.cpp:(.text+0x3b968): undefined reference to `XSaveContext'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::juce_deleteKeyProxyWindow(juce::ComponentPeer*)':
                    include_juce_gui_basics.cpp:(.text+0x3b9e2): undefined reference to `XFindContext'
                    include_juce_gui_basics.cpp:(.text+0x3b9fb): undefined reference to `XDestroyWindow'
                    include_juce_gui_basics.cpp:(.text+0x3ba09): undefined reference to `XSync'
                    include_juce_gui_basics.cpp:(.text+0x3ba2a): undefined reference to `XCheckWindowEvent'
                    include_juce_gui_basics.cpp:(.text+0x3ba72): undefined reference to `XDeleteContext'
                    include_juce_gui_basics.cpp:(.text+0x3ba8d): undefined reference to `XCheckWindowEvent'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::CustomMouseCursorInfo::create() const':
                    include_juce_gui_basics.cpp:(.text+0x3bb17): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3bc3b): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3bd74): undefined reference to `XQueryBestCursor'
                    include_juce_gui_basics.cpp:(.text+0x3bfb7): undefined reference to `XCreatePixmapFromBitmapData'
                    include_juce_gui_basics.cpp:(.text+0x3bfe4): undefined reference to `XCreatePixmapFromBitmapData'
                    include_juce_gui_basics.cpp:(.text+0x3c030): undefined reference to `XCreatePixmapCursor'
                    include_juce_gui_basics.cpp:(.text+0x3c040): undefined reference to `XFreePixmap'
                    include_juce_gui_basics.cpp:(.text+0x3c04b): undefined reference to `XFreePixmap'
                    include_juce_gui_basics.cpp:(.text+0x3c13d): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseCursor::deleteMouseCursor(void*, bool)':
                    include_juce_gui_basics.cpp:(.text+0x3c447): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3c452): undefined reference to `XFreeCursor'
                    include_juce_gui_basics.cpp:(.text+0x3c45a): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3c49f): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseCursor::createStandardMouseCursor(juce::MouseCursor::StandardCursorType)':
                    include_juce_gui_basics.cpp:(.text+0x3c544): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3c54e): undefined reference to `XCreateFontCursor'
                    include_juce_gui_basics.cpp:(.text+0x3c559): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3c75c): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseCursor::showInWindow(juce::ComponentPeer*) const':
                    include_juce_gui_basics.cpp:(.text+0x3c891): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3c8a4): undefined reference to `XDefineCursor'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Component::createNewPeer(int, void*)':
                    include_juce_gui_basics.cpp:(.text+0x5d79a): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x5d8c5): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x5d8fd): undefined reference to `XShmCreateImage'
                    include_juce_gui_basics.cpp:(.text+0x5d91e): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x5d99b): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text+0x5dbb3): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseCursor::showInAllWindows() const':
                    include_juce_gui_basics.cpp:(.text+0x5dcd1): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x5dce7): undefined reference to `XDefineCursor'
                    include_juce_gui_basics.cpp:(.text+0x5dcef): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x5dd72): undefined reference to `XDefineCursor'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::WindowingHelpers::windowMessageReceive(_XEvent&)':
                    include_juce_gui_basics.cpp:(.text+0xac2e2): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text+0xac2fa): undefined reference to `XFindContext'
                    include_juce_gui_basics.cpp:(.text+0xac324): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XWindowSystem::destroyXDisplay()':
                    include_juce_gui_basics.cpp:(.text+0x398ef): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::ScopedXLock::ScopedXLock(_XDisplay*)':
                    include_juce_gui_basics.cpp:(.text+0x3997c): undefined reference to `XLockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::ScopedXLock::~ScopedXLock()':
                    include_juce_gui_basics.cpp:(.text+0x39999): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Atoms::getIfExists(_XDisplay*, char const*)':
                    include_juce_gui_basics.cpp:(.text+0x39ce6): undefined reference to `XInternAtom'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Atoms::getCreating(_XDisplay*, char const*)':
                    include_juce_gui_basics.cpp:(.text+0x39cf3): undefined reference to `XInternAtom'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::GetXProperty::~GetXProperty()':
                    include_juce_gui_basics.cpp:(.text+0x39e2a): undefined reference to `XFree'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseCursor::showInWindow(juce::ComponentPeer*) const':
                    include_juce_gui_basics.cpp:(.text+0x3c8b0): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text+0x3c8c6): undefined reference to `XDefineCursor'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::setTitle(juce::String const&)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE[_ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE]+0x38): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE[_ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE]+0x4d): undefined reference to `XStringListToTextProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE[_ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE]+0x5e): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE[_ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE]+0x90): undefined reference to `XSetWMName'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE[_ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE]+0xa4): undefined reference to `XSetWMIconName'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE[_ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE]+0xad): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE[_ZN4juce18LinuxComponentPeer8setTitleERKNS_6StringE]+0xc7): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::setVisible(bool)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer10setVisibleEb[_ZN4juce18LinuxComponentPeer10setVisibleEb]+0x1b): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer10setVisibleEb[_ZN4juce18LinuxComponentPeer10setVisibleEb]+0x31): undefined reference to `XMapWindow'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer10setVisibleEb[_ZN4juce18LinuxComponentPeer10setVisibleEb]+0x51): undefined reference to `XUnmapWindow'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer10setVisibleEb[_ZN4juce18LinuxComponentPeer10setVisibleEb]+0x6e): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer10setVisibleEb[_ZN4juce18LinuxComponentPeer10setVisibleEb]+0x42): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::toBehind(juce::ComponentPeer*)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE[_ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE]+0xa4): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE[_ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE]+0xba): undefined reference to `XRestackWindows'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE[_ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE]+0xc7): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE[_ZN4juce18LinuxComponentPeer8toBehindEPNS_13ComponentPeerE]+0xfa): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::setMinimised(bool)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12setMinimisedEb[_ZN4juce18LinuxComponentPeer12setMinimisedEb]+0x9c): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12setMinimisedEb[_ZN4juce18LinuxComponentPeer12setMinimisedEb]+0xb5): undefined reference to `XSendEvent'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12setMinimisedEb[_ZN4juce18LinuxComponentPeer12setMinimisedEb]+0xbd): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12setMinimisedEb[_ZN4juce18LinuxComponentPeer12setMinimisedEb]+0xd5): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XBitmapImage::~XBitmapImage()':
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD2Ev[_ZN4juce12XBitmapImageD5Ev]+0x23): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD2Ev[_ZN4juce12XBitmapImageD5Ev]+0x38): undefined reference to `XFreeGC'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD2Ev[_ZN4juce12XBitmapImageD5Ev]+0x60): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD2Ev[_ZN4juce12XBitmapImageD5Ev]+0x9f): undefined reference to `XShmDetach'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD2Ev[_ZN4juce12XBitmapImageD5Ev]+0xab): undefined reference to `XFlush'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::Visuals::findVisualWithDepth(_XDisplay*, int)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce7VisualsL19findVisualWithDepthEP9_XDisplayi[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x21): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce7VisualsL19findVisualWithDepthEP9_XDisplayi[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x7f): undefined reference to `XGetVisualInfo'
                    include_juce_gui_basics.cpp:(.text._ZN4juce7VisualsL19findVisualWithDepthEP9_XDisplayi[_ZN4juce18LinuxComponentPeer12createWindowEm]+0xc7): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce7VisualsL19findVisualWithDepthEP9_XDisplayi[_ZN4juce18LinuxComponentPeer12createWindowEm]+0xcf): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::externalFindDragTargetWindow(unsigned long) [clone .part.378]':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer28externalFindDragTargetWindowEm.part.378[_ZN4juce18LinuxComponentPeer30handleExternalDragMotionNotifyEv]+0x43): undefined reference to `XQueryPointer'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer28externalFindDragTargetWindowEm.part.378[_ZN4juce18LinuxComponentPeer30handleExternalDragMotionNotifyEv]+0x90): undefined reference to `XListProperties'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer28externalFindDragTargetWindowEm.part.378[_ZN4juce18LinuxComponentPeer30handleExternalDragMotionNotifyEv]+0xd8): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer28externalFindDragTargetWindowEm.part.378[_ZN4juce18LinuxComponentPeer30handleExternalDragMotionNotifyEv]+0x109): undefined reference to `XFree'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::XBitmapImage::~XBitmapImage()':
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD0Ev[_ZN4juce12XBitmapImageD5Ev]+0x23): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD0Ev[_ZN4juce12XBitmapImageD5Ev]+0x38): undefined reference to `XFreeGC'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD0Ev[_ZN4juce12XBitmapImageD5Ev]+0x60): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD0Ev[_ZN4juce12XBitmapImageD5Ev]+0xaf): undefined reference to `XShmDetach'
                    include_juce_gui_basics.cpp:(.text._ZN4juce12XBitmapImageD0Ev[_ZN4juce12XBitmapImageD5Ev]+0xbb): undefined reference to `XFlush'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::MouseCursor::SharedCursorHandle::release()':
                    include_juce_gui_basics.cpp:(.text._ZN4juce11MouseCursor18SharedCursorHandle7releaseEv[_ZN4juce11MouseCursor18SharedCursorHandle7releaseEv]+0x35): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce11MouseCursor18SharedCursorHandle7releaseEv[_ZN4juce11MouseCursor18SharedCursorHandle7releaseEv]+0x40): undefined reference to `XFreeCursor'
                    include_juce_gui_basics.cpp:(.text._ZN4juce11MouseCursor18SharedCursorHandle7releaseEv[_ZN4juce11MouseCursor18SharedCursorHandle7releaseEv]+0x48): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce11MouseCursor18SharedCursorHandle7releaseEv[_ZN4juce11MouseCursor18SharedCursorHandle7releaseEv]+0xa5): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::isMinimised() const':
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer11isMinimisedEv[_ZNK4juce18LinuxComponentPeer11isMinimisedEv]+0x2f): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer11isMinimisedEv[_ZNK4juce18LinuxComponentPeer11isMinimisedEv]+0x7e): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer11isMinimisedEv[_ZNK4juce18LinuxComponentPeer11isMinimisedEv]+0x8b): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer11isMinimisedEv[_ZNK4juce18LinuxComponentPeer11isMinimisedEv]+0xdd): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::grabFocus()':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9grabFocusEv[_ZN4juce18LinuxComponentPeer9grabFocusEv]+0x32): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9grabFocusEv[_ZN4juce18LinuxComponentPeer9grabFocusEv]+0x4e): undefined reference to `XGetWindowAttributes'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9grabFocusEv[_ZN4juce18LinuxComponentPeer9grabFocusEv]+0x65): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9grabFocusEv[_ZN4juce18LinuxComponentPeer9grabFocusEv]+0xf2): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9grabFocusEv[_ZN4juce18LinuxComponentPeer9grabFocusEv]+0x11a): undefined reference to `XSetInputFocus'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9grabFocusEv[_ZN4juce18LinuxComponentPeer9grabFocusEv]+0x148): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::isParentWindowOf(unsigned long) const':
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer16isParentWindowOfEm[_ZNK4juce18LinuxComponentPeer16isParentWindowOfEm]+0x78): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer16isParentWindowOfEm[_ZNK4juce18LinuxComponentPeer16isParentWindowOfEm]+0x9d): undefined reference to `XQueryTree'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer16isParentWindowOfEm[_ZNK4juce18LinuxComponentPeer16isParentWindowOfEm]+0xb0): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer16isParentWindowOfEm[_ZNK4juce18LinuxComponentPeer16isParentWindowOfEm]+0xd3): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer16isParentWindowOfEm[_ZNK4juce18LinuxComponentPeer16isParentWindowOfEm]+0xf1): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer16isParentWindowOfEm[_ZNK4juce18LinuxComponentPeer16isParentWindowOfEm]+0x11e): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::isFocused() const':
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x40): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x56): undefined reference to `XGetInputFocus'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x80): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0xda): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0xfd): undefined reference to `XQueryTree'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x110): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x133): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x151): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x186): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZNK4juce18LinuxComponentPeer9isFocusedEv[_ZNK4juce18LinuxComponentPeer9isFocusedEv]+0x193): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::deleteIconPixmaps()':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0x19): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0x2a): undefined reference to `XGetWMHints'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0x51): undefined reference to `XSetWMHints'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0x59): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0x7c): undefined reference to `XFreePixmap'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0x9c): undefined reference to `XFreePixmap'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0xc4): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv[_ZN4juce18LinuxComponentPeer17deleteIconPixmapsEv]+0x6a): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::setIcon(juce::Image const&)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x113): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x128): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x154): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x16e): undefined reference to `XGetWMHints'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x1bb): undefined reference to `XSetWMHints'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x1c3): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x1d1): undefined reference to `XSync'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x1de): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x210): undefined reference to `XAllocWMHints'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE[_ZN4juce18LinuxComponentPeer7setIconERKNS_5ImageE]+0x22b): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::updateModifierMappings()':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x14): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x25): undefined reference to `XKeysymToKeycode'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x38): undefined reference to `XKeysymToKeycode'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x5a): undefined reference to `XGetModifierMapping'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x78): undefined reference to `XKeysymToKeycode'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x8b): undefined reference to `XKeysymToKeycode'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0xad): undefined reference to `XGetModifierMapping'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x1f0): undefined reference to `XFreeModifiermap'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer22updateModifierMappingsEv[_ZN4juce18LinuxComponentPeer22updateModifierMappingsEv]+0x6b): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::removeWindowDecorations(unsigned long)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x38): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x72): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x98): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0xa9): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0xc1): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0xe8): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x111): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x121): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x139): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x160): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x189): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x198): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x1b0): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x1cf): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x1fb): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x20a): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x23e): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x259): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x273): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm[_ZN4juce18LinuxComponentPeer23removeWindowDecorationsEm]+0x288): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::addWindowButtons(unsigned long)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x3b): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x53): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x140): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x15a): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x1c1): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x200): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x20f): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x29d): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x2e9): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x333): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16addWindowButtonsEm[_ZN4juce18LinuxComponentPeer16addWindowButtonsEm]+0x375): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::createWindow(unsigned long)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x3c): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x100): undefined reference to `XCreateColormap'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x112): undefined reference to `XInstallColormap'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x193): undefined reference to `XCreateWindow'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x1b3): undefined reference to `XSaveContext'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x206): undefined reference to `XDestroyWindow'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x21b): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x249): undefined reference to `XAllocWMHints'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x274): undefined reference to `XSetWMHints'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x27c): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x29e): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x2d0): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x356): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x386): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x3bc): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x3f2): undefined reference to `XChangeProperty'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o:include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x428): more undefined references to `XChangeProperty' follow
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::createWindow(unsigned long)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x46c): undefined reference to `XGetPointerMapping'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x4d3): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x4e8): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x5fc): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x637): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x666): undefined reference to `XChangeProperty'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer12createWindowEm[_ZN4juce18LinuxComponentPeer12createWindowEm]+0x6aa): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::updateBorderSize()':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16updateBorderSizeEv[_ZN4juce18LinuxComponentPeer16updateBorderSizeEv]+0x58): undefined reference to `XLockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16updateBorderSizeEv[_ZN4juce18LinuxComponentPeer16updateBorderSizeEv]+0x70): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16updateBorderSizeEv[_ZN4juce18LinuxComponentPeer16updateBorderSizeEv]+0x82): undefined reference to `XUnlockDisplay'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16updateBorderSizeEv[_ZN4juce18LinuxComponentPeer16updateBorderSizeEv]+0x12a): undefined reference to `XFree'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer16updateBorderSizeEv[_ZN4juce18LinuxComponentPeer16updateBorderSizeEv]+0x147): undefined reference to `XUnlockDisplay'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::DragState::DragState(_XDisplay*)':
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9DragStateC2EP9_XDisplay[_ZN4juce18LinuxComponentPeer9DragStateC5EP9_XDisplay]+0x6d): undefined reference to `XInternAtom'
                    include_juce_gui_basics.cpp:(.text._ZN4juce18LinuxComponentPeer9DragStateC2EP9_XDisplay[_ZN4juce18LinuxComponentPeer9DragStateC5EP9_XDisplay]+0xcb): undefined reference to `XInternAtom'
                    build/intermediate/Release/include_juce_gui_basics_e3f79785.o: In function `juce::LinuxComponentPeer::updateDraggedFileList(XClientMessageEvent const&)':
                    
                    1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey
                      last edited by

                      This post is deleted!
                      1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart
                        last edited by

                        Clean the build folder, this is some intermediate file bug.

                        d.healeyD 1 Reply Last reply Reply Quote 1
                        • d.healeyD
                          d.healey @Christoph Hart
                          last edited by d.healey

                          @christoph-hart You solved it! Plugin loads fine now :D Thank you!!!

                          I see Headless VSTi is an export option now, what's this for?

                          Shall I rebuild projucer on ancient Linux or are there more changes to come?

                          1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart
                            last edited by

                            Finally, I was starting to loose hair.

                            Headless VSTi is for a project on embedded Linux, but apart from that it serves no purpose.

                            You can rebuild the Projucer, I won‘t touch it soon...

                            1 Reply Last reply Reply Quote 2
                            • d.healeyD
                              d.healey
                              last edited by

                              Is there anything else that could cause those intermediate file issues I had earlier? I'm trying to build Projucer on Mint 17 and I'm hitting those same messages, I've done make clean every time and I manually deleted the build folder. Before I started I deleted my previous HISE-develop folder and downloaded it fresh from GitHub as a zip.

                              1 Reply Last reply Reply Quote 0
                              • Christoph HartC
                                Christoph Hart
                                last edited by

                                I‘ve hit those when I switched the compilation modes from Debug to Release and there were some old files lying around that were mistakenly reused, but I have no idea what else could be responsible...

                                d.healeyD 1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey @Christoph Hart
                                  last edited by

                                  @christoph-hart hmm I'll try on Mint 18 and see what I get

                                  1 Reply Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey
                                    last edited by

                                    Well something strange is happening. I'll probably figure it out. If I open the JUCE/extras/projucer/Projucer.jucer file and resave it, then try and build the make file I get the problem. Whereas if I don't do the resaving and just use the makefile that's already there I don't get the issue. The only problem it has the webgtk stuff in that makefile so I want to resave the jucer file.

                                    1 Reply Last reply Reply Quote 0
                                    • Christoph HartC
                                      Christoph Hart
                                      last edited by

                                      Well in this case make a diff between the makefiles and check what else is changing.

                                      1 Reply Last reply Reply Quote 0
                                      • d.healeyD
                                        d.healey
                                        last edited by

                                        Good idea. I'm not too sure what I'm looking for, the red is the new file that doesn't work, yellow is the original.

                                        0_1538772975916_Screenshot from 2018-10-05 21-55-36.png

                                        1 Reply Last reply Reply Quote 0
                                        • Christoph HartC
                                          Christoph Hart
                                          last edited by

                                          It seems as there are a few dependencies being removed (x11, web-gtk and so on). I think had to remove these for the headless plugin build (is actually a few months ago since I did this), but it shouldn't affect the normal stuff.

                                          In order to fix this, you can add these back to the Projucer (search for the other libs like freetype and add the missing ones.

                                          d.healeyD 1 Reply Last reply Reply Quote 2
                                          • d.healeyD
                                            d.healey @Christoph Hart
                                            last edited by

                                            @christoph-hart I think I'm not doing this correctly. I go to the filter below the file explorer section and type in x11 for example but nothing shows up.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            22

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.6k

                                            Posts