Linux Introjucer?


Having had a few successful sessions with Juce on a Win7 PC, I am now playing with Linux… which is new to me (UBUNTU 11.10)

The Introjucer download seems to come in 2 versions, an .exe and a .dmg so I downloaded the exe. and it works by running under wine. But, the menus pop up all over the place and when hovering the mouse ready to click, the menu items flicker between selected/unselected, so is there a native linux version of Introjucer or am I right to be using the .exe under wine? As said already it does seem to produce builds for me so not a big deal… but just wondered?


Erm… I don’t understand the logic behind trying to force the windows version to run, rather than just compiling and running a linux version of it?

Fast reply :smiley:

There was no logic to it … I just saw 2 files so downloaded the .exe :o

As said… new to Linux so I need to learn how to compile from source… OK :oops:

Having been on Windows for so many years now, I am just accustomed to using ready-to-go .exes for pretty much everything, and so far on Ubuntu 10.11 I have just used the built-in “Software Centre” to install things - which also requires no work !!

Your help when I started playing with Juce a few months back was great, but perhaps using Introjucer made it too easy for me to get things working on VS, so I didn’t learn all I could have ?? Still, have managed to get at least somewhere with learning some C++ coding by fiddling with your demo files.

Now time to learn something new… will go now and find the source and see if I can figure out how to compiles.


Well, you’ll need to learn how to compile stuff on linux if you want to actually write any software, so best learn to do it asap!

OK, have done some reading and have had a go at using the Makefile you provide in ‘extras/Introjucer/Builds/Linux’ - it almost sounded too simple just have to type ‘make’ at the command line, but I did and it looked as if it was working as various files began to compile, but then errors arose when it started to link… loads of undefined references

So, I need help & guidance …

Is there something missing from my setup that I need to install?
Am I right to just be typing ‘make’ or should there be parameters to go with it?

Many thanks… Mark

My console output:

Did you install the dependencies mentioned in this post?


Hi Chris

Yes , I had seen that post so did install those, and have just double-checked that they are still installed.

I will continue to experiment! I always learn more anyway when things don’t work… forces me to read & explore more :slight_smile:


You are using a new “distribution” of Linux where Shm is now inside another library than it used to be. Open the Makefile and locate the 2 lines where it reads “-ljuce” and add “-lXext” in there.
Or, fetch the branch called “modules” in the Juce repository since I think it’s fixed in there.

Thanks for trying to help me folks, but I’m still struggling with this - perhaps I should just go back to my Win7 PC ?? but I want to try a linux build of something and if I can’t even get Introjucer compiled & built properly… !?

Anyway just to recap I am trying to build Introjucer from the Makefile provided in ‘extras/Introjucer/Builds/Linux’ of the latest/current juce download, but get the errors as already told.

I can’t find any instance of ‘-ljuce’ in the Makefile (let alone 2 !) and in the juce sourceforge repository I can’t find anything that says “modules”.

I know there must be something fundamental that I don’t understand :frowning:

I just had to add 4-5 libraries to an updated Linux system. Do your errors say what is missing and where it might be, they did for me?

I remember something like: libXext, librt, libcrypto,

But the linker errors told me each one as I knocked them down.

It’s Arch 3.1.5, by the way, very new.


Hi Bruce and thanks for the ideas… :slight_smile:

The errors are just as posted already…

Linking The Introjucer build/intermediate/Debug/JuceLibraryCode4_6856d902.o: In function `isShmAvailable': /home/mark/SoftDev/JUCE/extras/Introjucer/Builds/Linux/../../JuceLibraryCode/../../../amalgamation/../src/native/linux/juce_linux_Windowing.cpp:176: undefined reference to `XShmQueryVersion'

, nothing about what libraries might be missing… just this ‘undefined reference’

I have found another thread for this problem:

where tim has posted a suggested patch for the Makefile - but I have tried doing that (by literally copying his code) and failed… :cry:

and where X-Ry1669 says that… "Xext is required, if you enable the config option to use XSHM " … and in this thread says “Open the Makefile and locate the 2 lines where it reads “-ljuce” and add “-lXext” in there” … but I can’t find any code where it says “-ljuce”

I think I’ll just have to wait until I read of a fix for this in some future update from Jules, and try to get on for now by other means. Although I haven’t managed to get this sorted, I am learning a lot more about using linux … and I am beginning to understand why it might best be avoided too :!:


That’s not a bad approach. At some point Jules will probably end up on a distro that uses the new libraries - they probably got stripped down a bit - and those includes will appear. I can list them after the holidays too.

What Linux distro and version are you on now?



I’m using Ubuntu 11.10, but am going to have a look at Arch that seems to be very popular…

… and stick to my Win7 PC for programming (for now…)



I’ve just had exactly the same problem with Ubuntu 11.10. I’ve solved it, by adding -lXext to the following line of the makefile:

LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lGL -lGLU -lXinerama -lasound

So that it looks like this now:

LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -L"/usr/X11R6/lib/" -L"../../../../../juce/bin" -lfreetype -lpthread -lrt -lX11 -lXext -lGL -lGLU -lXinerama -lasound

But as the comment in the makefile says…
"# Don’t edit this file! Your changes will be overwritten when you re-save the Jucer project!"

…this is probably not the best solution… Is there a more comfortable way to fix this?

I guess I should probably add -lXext to the library list by default. But you know you can add whatever command flags you want to the introjucer’s project settings, and it’ll put them in the makefile for you.

[EDIT] I actually already added the Xext library - try the latest version of the introjucer.

Oh, cool, I’ll try this. I’ve downloaded the Introjucer included in the juce_1_53 package from the 24th of june.

By the way, I had to add -lrt to the same line as mentioned above, when I tried to compile the jucer.

I added -lrt months ago. Please don’t waste your time (or mine) messing about with old versions - I’m only interested in problems that you have with the very latest modules branch from GIT.

I added -lrt months ago. Please don’t waste your time (or mine) messing about with old versions - I’m only interested in problems that you have with the very latest modules branch from GIT.[/quote]

Sorry, but I’ve downloaded the latest version with git as explained here on the Downloads page and updated it with the Introjucer to version 1.54.27. To compile the jucer with Ubuntu 11.10 I had to add -lXext AND -lrt to the makefile, because otherwise, I get the error:
/…/…/juce_amalgamated.cpp:264363: undefined reference to `clock_gettime’

How do I get a version, where this is fixed?

Okay, I’m really sorry. I haven’t read that threat before. Now everything workes fine, without adding anything.