Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I'm trying to compile the the current release of gtk+ and I'm also trying to install Thunar, I have installed all other dependencies for both that are needed, but both get errors. Thunar says it has undefined references related to pango, and gtk+ says that it cannot link to pango. I'm guessing I havn't installed it properly. And also I'm wondering if this is because my PKG_CONFIG_PATH is set wrong, I know where it is, but I have 4 different pkgconfig folders, is this normal? I installed a newer version of pkgconfig because I thought I had to in order to install gtk+. I think it now may be installed in 2 different locations, should I just remove the old one?
I guess right now unless anyone has any comments is just how do I tell if Pango is installed properly ?
How are you installing everything? Are you using a packaging tool like checkinstall? What parameters are you passing to the configure scripts? Have you added your library paths to /etc/ld.so.conf?
I'm not using checkinstall, I'm just doing the regular make;make install, and I havn't passed any paremeters to the ./configure script, I've followed the INSTALL files for everything. I'm now wondering if it may have something to do with my Xft libraries or soemthing because this is what I get when I try to compile Thunar.
Thunar-thunar-shortcuts-pane.o(.text+0x2e):/home/brett/xfce-4.3.90.2/src/Thunar-0.3.2beta2/thunar/thunar-shortcuts-pane.c:146: more undefined references to `g_intern_static_string' follow
/usr/local/lib/libpangoxft-1.0.so: undefined reference to `g_type_register_static_simple'
/usr/local/lib/libpangoft2-1.0.so: undefined reference to `pango_matrix_get_font_scale_factor'
/usr/local/lib/libpangoft2-1.0.so: undefined reference to `pango_quantize_line_geometry'
/usr/local/lib/libpangoft2-1.0.so: undefined reference to `g_slice_alloc0'
/usr/local/lib/libpangoft2-1.0.so: undefined reference to `pango_font_describe_with_absolute_size'
collect2: ld returned 1 exit status
make[3]: *** [Thunar] Error 1
make[3]: Leaving directory `/home/brett/xfce-4.3.90.2/src/Thunar-0.3.2beta2/thunar'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/brett/xfce-4.3.90.2/src/Thunar-0.3.2beta2/thun
It's getting kind of late, and I've been trying to figure this out most of my day on and off, so I'm gonna give up for now. Been trying to get Thunar working for over a week, I have used it before and I really liked it.
The library paths are all fine, when I configure pango, do I need to have it so that it is compiled with the Freetype X Xft and Cairo backends? because I don't think it is, right now it's just with Freetype X and Xft, but no Cairo, and I don't know why, it seems to just not work sometimes.
I've been using linux for a year or two, but I feel like I've only recently in the past couple months or so, I've still got alot to learn so sorry if I have trouble answering some questions or anything. If it seems like I don't know what I'm talking about it's probably cause I don't lol.
Last edited by kryptobs2000; 08-18-2006 at 01:28 AM.
Well, I'm currently in the process of building Gnome 2.14.2 from source (mostly finished, actually) and skipped both gtk+ and pango because recent enough versions were already installed (pango 1.12.3 and gtk+ 2.8.19). I'm not sure if they came with Slackware 10.2 or if they've been upgraded since every week or two I upgrade everything to current with swaret. Maybe you have two versions of Pango installed right now and they're conflicting somehow.
I'll try building Thunar and see how it goes. (I have to do it later because exo is complaining about missing Perl libs, and I'll have to install them first)
When I'm replacing libraries or binaries with new versions I always use a packaging tool to make sure that it's more easily reversible. In your situation you could "make uninstall" from the pango folder, and then reinstall the package included with Slackware (you might even want to download the most recent package available from Slackware-current, but that does have some small risk of incompatibility with other libraries).
If the Slackware pango package isn't recent enough, then I would remove it using pkgtool after installing the new one (remembering to run ldconfig afterwards). It could always be reinstalled afterwards if the new one doesn't turn out well.
My understanding is that PKG_CONFIG_PATH could be referencing one library, but the other library is first according to /etc/ld.so.conf. This means that the compiler doesn't really know which functions are available, since some could be missing from a different library.
Well, I just compiled and installed Thunar without too much difficulty. I didn't have the required Perl modules needed by exo, so I installed them using cpan2tgz by Jason Woodward, (who is also one of the Freerock Gnome developers): http://software.jaos.org/
I have installed the most recent build of pango provided by the Slackware team, 1.12.3, and the most recent gtk+ from Slackware, 2.8.20. From the list of libraries that thunar uses, it might depend on a few that I built myself (like ORBit -- didn't notice others).
Here's my current PKG_CONFIG_PATH:
As you can see I'm putting any gnome packages I make in /opt/gnome.
Hope this helps somehow!
edit: whoops, what are /mnt/oldlinux/usr/* doing in ld.so.conf? I usually don't even have it mounted, and it would certainly be bad to build packages against any libraries there... Thanks for helping to alert me of this!
I have a similar question that might help me understand this more. When building certain things that depend on other libraries for example, libdvdread, how does w/e I'm building know where to find it if it's not in the pkgconfig folder? there is no libdvdread.pc or anything. Is there some way to pass something when running ./configure to tell it where the library files are directly? I could be totally off on how this whole thing works too so correct me if I have a completely wrong idea here.
I'm no expert by any means, but as far as I've been able to determine PKG_CONFIG_PATH is generally used when configuring a build (pkg-config tells general info about libraries - which version, where they're installed and so on), and ld.so.conf is used by ldconfig to build the actual library links for when compiling takes place (where the methods are actually located in the library binary, where the binary is located, etc). So if .configure is told by pkg-config that version 2.10 of library foo is installed in /usr/local/lib, but ld.so links version 2.6 in /usr/lib, there may be some issues (methods that are in 2.10 but missing in 2.6, etc.)
The configure script may read environment variables that specify where specific libraries can be found, for example if you want to force a certain version instead of the one that ld.so uses. I'm a little hazy about this part though - what stops the end binary from dynamically using the other one? As I said, I'm certainly no expert.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.