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.
    • Christoph HartC
      Christoph Hart
      last edited by

      Aww man, this is getting really annoying. Googling the type of warning leads into weird C++ template issues for g++, but I am pretty sure that I don't violate the rules for using incomplete classes in templates, however I found one link that could explain the memory leaks.

      I'll throw on my virtual machine and see whether I can reproduce this. Does this happen on your normal build machine too, or is this problem new since you were time-travelling to the older Linux distro?

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

        @christoph-hart It's on my normal build and Ubuntu 18, I haven't tested on the earlier one, I just used that to build the plugin. I can try it if it would be useful. A user reported the same issue when scanning the plugin in carla, I've asked him to send me the core dump to analyse. I tried in carla and although I didn't get the crash or a core dump I did get all those assertions and LockHelpers.cpp things.

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

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

          Hmm, I checked the assertion locations and somehow it fails to detect the different threads which are normally identified by their handle.

          I've added another assertion / logging that fires if the threads can't be detected. Can you rebuild your plugin and check this?

          I've also removed the one incomplete pointer warning in the floating tile code, but it this removes the crash, I might as well stop coding and start a black magic cult as this will require similar amounts of logic.

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

            @christoph-hart Downloading now, will report back soon

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

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

              Might be black magic time.

              My test plugin runs fine in Reaper, even with the floating tile. My woodwind plugin doesn't. However I'm no longer seeing any warnings about floating tiles, I'm only seeing the warnings about MainController.

              The core dump backtrace is quite different now and I don't think very informative.

              Type "apropos word" to search for commands related to "word"...
              Reading symbols from /opt/REAPER/reaper...(no debugging symbols found)...done.
              [New LWP 3539]
              [New LWP 3520]
              [New LWP 3515]
              [New LWP 3516]
              [New LWP 3519]
              [New LWP 3523]
              [New LWP 3529]
              [New LWP 3514]
              [New LWP 3518]
              [New LWP 3527]
              [New LWP 3530]
              [New LWP 3528]
              [New LWP 3540]
              [New LWP 3525]
              [New LWP 3541]
              [New LWP 3522]
              [New LWP 3524]
              [New LWP 3521]
              [New LWP 3517]
              [New LWP 3531]
              [New LWP 3526]
              [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 SIGSEGV, Segmentation fault.
              #0  0x00007fc1113cae08 in ?? ()
              [Current thread is 1 (Thread 0x7fc0feefc700 (LWP 3539))]
              (gdb) bt
              #0  0x00007fc1113cae08 in  ()
              #1  0x000000005bb637ff in  ()
              #2  0x0000000015453890 in  ()
              #3  0x000000005bb637fe in  ()
              #4  0x00000000000d131a in  ()
              #5  0x0000000000000040 in  ()
              #6  0x9d1aab0124981600 in  ()
              #7  0x0000000005685ae0 in  ()
              #8  0x0000000005685958 in  ()
              #9  0x0000000005685ae0 in  ()
              #10 0x00000000000001f4 in  ()
              #11 0x0000000000000000 in  ()
              

              I was thinking I'll start adding stuff to the test project and see if I can get it to break again.

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

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

                I just noticed that when Reaper crashes it leaves this in the console

                Creating Frontend Processor
                Initialising MainController
                Unknown thread with ID 139711976238336
                Segmentation fault (core dumped)
                

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

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

                  And it seems I was looking at the wrong core file. Here is the correct one:

                  Type "apropos word" to search for commands related to "word"...
                  Reading symbols from /opt/REAPER/reaper...(no debugging symbols found)...done.
                  [New LWP 5629]
                  [New LWP 5632]
                  [New LWP 5634]
                  [New LWP 5631]
                  [New LWP 5637]
                  [New LWP 5639]
                  [New LWP 5636]
                  [New LWP 5641]
                  [New LWP 5644]
                  [New LWP 5643]
                  [New LWP 5649]
                  [New LWP 5651]
                  [New LWP 5640]
                  [New LWP 5642]
                  [New LWP 5650]
                  [New LWP 5633]
                  [New LWP 5635]
                  [New LWP 5647]
                  [New LWP 5645]
                  [New LWP 5646]
                  [New LWP 5638]
                  [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 SIGSEGV, Segmentation fault.
                  #0  0x00007f4e1dfd42f6 in juce::String::operator+=(juce::String const&) ()
                     from /home/dave/.vst/Sofia Woodwinds.so
                  [Current thread is 1 (Thread 0x7f4e62f68d00 (LWP 5629))]
                  (gdb) bt
                  #0  0x00007f4e1dfd42f6 in juce::String::operator+=(juce::String const&) ()
                      at /home/dave/.vst/Sofia Woodwinds.so
                  #1  0x00007f4e1dfd9254 in juce::operator+(char const*, juce::String const&) ()
                      at /home/dave/.vst/Sofia Woodwinds.so
                  #2  0x00007f4e1de92ec1 in hise::MainController::KillStateHandler::getCurrentThread() const () at /home/dave/.vst/Sofia Woodwinds.so
                  #3  0x00007f4e1de93145 in hise::MainController::KillStateHandler::currentThreadHoldsLock(hise::LockHelpers::Type) const ()
                      at /home/dave/.vst/Sofia Woodwinds.so
                  #4  0x00007f4e1df2beb3 in hise::Processor::setParentProcessor(hise::Processor*) () at /home/dave/.vst/Sofia Woodwinds.so
                  #5  0x00007f4e1df5cee8 in hise::ModulatorSynth::ModulatorSynth(hise::MainController*, juce::String const&, int) () at /home/dave/.vst/Sofia Woodwinds.so
                  #6  0x00007f4e1df5f20f in hise::ModulatorSynthChain::ModulatorSynthChain(hise::MainController*, juce::String const&, int, juce::UndoManager*) ()
                      at /home/dave/.vst/Sofia Woodwinds.so
                  #7  0x00007f4e1dfb3910 in hise::FrontendProcessor::FrontendProcessor(juce::ValueTree&, juce::AudioDeviceManager*, juce::AudioProcessorPlayer*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::ValueTree*, juce::ValueTree*) () at /home/dave/.vst/Sofia Woodwinds.so
                  #8  0x00007f4e1df31ffa in hise::FrontendFactory::createPluginWithAudioFiles(juce::AudioDeviceManager*, juce::AudioProcessorPlayer*) ()
                      at /home/dave/.vst/Sofia Woodwinds.so
                  ---Type <return> to continue, or q <return> to quit---
                  #9  0x00007f4e1db4e852 in createPluginFilterOfType(juce::AudioProcessor::WrapperType) () at /home/dave/.vst/Sofia Woodwinds.so
                  #10 0x00007f4e1db83efe in VSTPluginMain () at /home/dave/.vst/Sofia Woodwinds.so
                  #11 0x0000000000828100 in  ()
                  #12 0x0000000000828a44 in  ()
                  #13 0x000000000082af4f in  ()
                  #14 0x000000000082b295 in  ()
                  #15 0x00007f4e61496a26 in  () at /opt/REAPER/libSwell.so
                  #16 0x00007f4e6148b147 in  () at /opt/REAPER/libSwell.so
                  #17 0x00007f4e61496e87 in  () at /opt/REAPER/libSwell.so
                  #18 0x00007f4e614a49d3 in  () at /opt/REAPER/libSwell.so
                  #19 0x00000000006a2431 in  ()
                  #20 0x000000000082cae8 in  ()
                  #21 0x00000000005adf77 in  ()
                  #22 0x00007f4e61496a26 in  () at /opt/REAPER/libSwell.so
                  #23 0x00007f4e6148b147 in  () at /opt/REAPER/libSwell.so
                  #24 0x00007f4e61499195 in  () at /opt/REAPER/libSwell.so
                  #25 0x00007f4e614b2813 in  () at /opt/REAPER/libSwell.so
                  #26 0x00007f4e614b2c84 in  () at /opt/REAPER/libSwell.so
                  #27 0x00007f4e614b3125 in  () at /opt/REAPER/libSwell.so
                  #28 0x00007f4e5f68f765 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                  #29 0x00007f4e5f6bff82 in  () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
                  #30 0x00007f4e5e514287 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
                  #31 0x00007f4e5e5144c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
                  #32 0x00007f4e5e51454c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
                  #33 0x00007f4e614b456a in  () at /opt/REAPER/libSwell.so
                  #34 0x00007f4e61496da2 in  () at /opt/REAPER/libSwell.so
                  #35 0x0000000000412a5e in  ()
                  #36 0x00007f4e61935b97 in __libc_start_m
                  

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

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

                    I am starting to make progress here. It seems that the message thread detection is somehow failing during initialisation - I can't even load the BasicSynth plugin into the plugin host. Not sure why this is happening and why it is appearing now and not months ago when I changed the threading model, but anyways, I think this might be the reason for all the weirdness that you're experiencing...

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

                      I've made a fix that allows me to open the BasicSynth plugin in REAPER again - please try if this solves also your issues, the message thread detection should be working again, however I am waiting for the JUCE guys to comment on this, since the fix is a rather invasive change in their codebase which I am sure they would have done already if it makes sense.

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

                        I'm getting this when building the latest version of HISE

                        In file included from ../../JuceLibraryCode/include_juce_gui_extra.cpp:9:0:
                        ../../../../JUCE/modules/juce_gui_extra/juce_gui_extra.cpp:97:12: fatal error: gtk/gtk.h: No such file or directory
                           #include <gtk/gtk.h>
                                    ^~~~~~~~~~~
                        compilation terminated.
                        Makefile:292: recipe for target 'build/intermediate/Release/include_juce_gui_extra_6dee1c1a.o' failed
                        make: *** [build/intermediate/Release/include_juce_gui_extra_6dee1c1a.o] Error 1
                        

                        Projucer also gave me some message about missing opengl module

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

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

                          Oh, please try the commit before that:

                          Link Preview Image
                          - fix typo · christophhart/HISE@16a5978

                          The open source framework for sample based instruments - - fix typo · christophhart/HISE@16a5978

                          favicon

                          GitHub (github.com)

                          I've merged another branch that enables Linux headless plugins which might caused some hiccups.

                          BTW, the projucer binary you sent me didn't work on my system (gave me an illegal instruction app). Why is Linux so weird when it comes to binary compatibility?

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

                            @christoph-hart HISE built ok but plugin still causing problems in Reaper.

                            Libre Wave - Freedom respecting instruments and effects
                            My Patreon - HISE tutorials
                            YouTube Channel - Public HISE tutorials

                            1 Reply Last reply Reply Quote 0
                            • 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 ()
                              

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              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?

                                  Libre Wave - Freedom respecting instruments and effects
                                  My Patreon - HISE tutorials
                                  YouTube Channel - Public HISE tutorials

                                  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.

                                      Libre Wave - Freedom respecting instruments and effects
                                      My Patreon - HISE tutorials
                                      YouTube Channel - Public HISE tutorials

                                      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.
                                        

                                        Libre Wave - Freedom respecting instruments and effects
                                        My Patreon - HISE tutorials
                                        YouTube Channel - Public HISE tutorials

                                        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&)':
                                            

                                            Libre Wave - Freedom respecting instruments and effects
                                            My Patreon - HISE tutorials
                                            YouTube Channel - Public HISE tutorials

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

                                            12

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.6k

                                            Posts