CodeBlocks pig-config change?


#1

Looks like someone just changed the Linux CodeBlocks exporter to do something different with pkg-config?

What does that change do? Does it change what we need to do with libraries?

In the past, I used Codeblocks but made my own project. Yesterday I was getting JuceDemo up with Codeblocks as exported by ProJucer.

I had to:
add the Modules folder as a search path to both targets
add the /usr/X11R6/lib/ path to the project in ProJucer
Add libraries Xext and X11 to the project. Note, not xinerama or lib curl or some of the others in the makefile
Add libasound (after looking up that provides ALSA) and freetype for freetype2. Currently, I’ve done that in ProJucer with linker flags: -lXext -lX11 -lasound -lfreetype

So - I see CodeBlocks has the pkg-config tab. Should I be able to let it find stuff for me? That won’t increase my app’s dependencies in a weird way will it?

Bruce


#2

All the steps you listed are now automated. See this thread: Codeblocks can't find juce header

Your app will have the same dependencies, which are only those listed in the JUCE modules you include in your project.


#3

Great! I actually posted in that thread but didn’t get notified about the replies.
New forum woes. I miss the old forums.

Thanks.

Bruce


#4

I can’t remember what the defaults are, but one of the forum options I have is

“When I post in a topic, set that topic to” -> “Tracking”

then it’ll appear under the “Unread” tab.


#5

Yes, that’s what I do and ‘unread’ worked. Expected a notification email too. Oh well.

Bruce


#6

Is it possible ‘extra libraries to link’ is being ignored now? If I don’t put it in as a linker parameter, they don’t seem to show up, and I get a ‘file not found’ warning - not sure where it’s looking.

Bruce


#7

Could you be more specific?

If I have -LSomeDir in “ExtraLinkerFlags” and libSomeLib in “External libraries to link” then I can see -LSomeDir -lSomeLib in the linker invocation, which is the expected output.


#8

Hmm. Maybe I’m not using it right.

When I put gstreamer-1.0 in libraries, and gstreamer-1.0 is in my normal path /usr/lib shouldn’t that work? Or is external libraries purely for non-installed libraries?

Bruce


#9

What does your linker invocation look like?


#10

OK - ignore the below… I was putting all the libraries on one line, as you would with linker options, and when I put each on one line, it builds properly.

Not sure if there’s anything to fix, except maybe tool tips or hints or something?

Thanks for the prompt help!

[pre-solution results below]
If I put nothing in linker flags, and this in external libraries:
gstreamer-1.0 glib-2.0 gobject-2.0
I get no mention of any of those in the linker sections of the build targets in codeblocks, and I see this in the build. Looks like some weird extra quotes?