wxWidgets 2.9 on Fedora 13 - "wx-config --libs" missing some libs

206 views
Skip to first unread message

Felix Wolfheimer

unread,
Sep 7, 2010, 4:44:27 PM9/7/10
to wx-u...@googlegroups.com
Hi,

I'm using wxWidgets 2.9.1 on Fedora 13 (x64). When I "configure - make -
make install" compilation of all samples fails with the following error:

g++ -m64 -o ribbon ribbon_ribbondemo.o
-L/home/felix/ResourceManagement/GUI/wxWidgets-2.9.2/my_build/linux64/build_dir_FC13/lib -pthread -L/usr/lib64 -lwx_gtk2u_ribbon-2.9 -lwx_gtk2u_adv-2.9 -lwx_gtk2u_core-2.9 -lwx_baseu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXxf86vm -lSM -lwxzlib-2.9 -lwxregexu-2.9 -lwxexpat-2.9 -pthread -L/usr/lib64 -ldl -lm -ldl -lm
/usr/bin/ld: /home/felix/ResourceManagement/GUI/wxWidgets-2.9.2/my_build/linux64/build_dir_FC13/lib/libwx_gtk2u_core-2.9.a(corelib_gtk_print.o): undefined reference to symbol 'pango_cairo_update_layout'
/usr/bin/ld: note: 'pango_cairo_update_layout' is defined in
DSO /usr/lib64/libpangocairo-1.0.so.0 so try adding it to the linker
command line
/usr/lib64/libpangocairo-1.0.so.0: could not read symbols: Invalid
operation

When you add the pangocairo lib it complains about other undefined
symbols. To fix the issue in fact I define

LDFLAGS="-lpangocairo-1.0 -lcairo -lX11"

before I compile wxWidgets. If those three libs are added everything is
fine. If you use "wx-config --lib" those three libs are missing again on
the command line which wx-config creates and you need to add them
manually to the linker command line.

Same is true for x86 version.

Maybe this can be fixed for one of the future releases?

Best regards

Felix


Vadim Zeitlin

unread,
Sep 7, 2010, 5:26:17 PM9/7/10
to wx-u...@googlegroups.com
On Tue, 07 Sep 2010 22:44:27 +0200 Felix Wolfheimer <f.wolf...@online.de> wrote:

FW> I'm using wxWidgets 2.9.1 on Fedora 13 (x64). When I "configure - make -
FW> make install" compilation of all samples fails with the following error:

Do you really use configure without any arguments? AFAICS you use static
build of the library, so you're using --disable-shared, don't you?

FW> g++ -m64 -o ribbon ribbon_ribbondemo.o
FW> -L/home/felix/ResourceManagement/GUI/wxWidgets-2.9.2/my_build/linux64/build_dir_FC13/lib -pthread -L/usr/lib64 -lwx_gtk2u_ribbon-2.9 -lwx_gtk2u_adv-2.9 -lwx_gtk2u_core-2.9 -lwx_baseu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXxf86vm -lSM -lwxzlib-2.9 -lwxregexu-2.9 -lwxexpat-2.9 -pthread -L/usr/lib64 -ldl -lm -ldl -lm
FW> /usr/bin/ld: /home/felix/ResourceManagement/GUI/wxWidgets-2.9.2/my_build/linux64/build_dir_FC13/lib/libwx_gtk2u_core-2.9.a(corelib_gtk_print.o): undefined reference to symbol 'pango_cairo_update_layout'

What does "pkg-config --libs gtk+-2.0" return on your system? I suspect
that it doesn't include -lpangocairo and we always assumed it would so far.

Thanks,
VZ

--
TT-Solutions: wxWidgets consultancy and technical support
http://www.tt-solutions.com/

Felix Wolfheimer

unread,
Sep 7, 2010, 6:30:44 PM9/7/10
to wx-u...@googlegroups.com
Am Dienstag, den 07.09.2010, 23:26 +0200 schrieb Vadim Zeitlin:
> On Tue, 07 Sep 2010 22:44:27 +0200 Felix Wolfheimer <f.wolf...@online.de> wrote:
>
> FW> I'm using wxWidgets 2.9.1 on Fedora 13 (x64). When I "configure - make -
> FW> make install" compilation of all samples fails with the following error:
>
> Do you really use configure without any arguments? AFAICS you use static
> build of the library, so you're using --disable-shared, don't you?

Hi Vadim,

you're right. I'm using

configure --disable-shared \
--enable-unicode \
--with-zlib=builtin \
--with-expat=builtin \
--with-regex=builtin \
--with-libjpeg=builtin \
--with-libtiff=builtin \
--with-libpng=builtin

>
> FW> g++ -m64 -o ribbon ribbon_ribbondemo.o
> FW> -L/home/felix/ResourceManagement/GUI/wxWidgets-2.9.2/my_build/linux64/build_dir_FC13/lib -pthread -L/usr/lib64 -lwx_gtk2u_ribbon-2.9 -lwx_gtk2u_adv-2.9 -lwx_gtk2u_core-2.9 -lwx_baseu-2.9 -lwxtiff-2.9 -lwxjpeg-2.9 -lwxpng-2.9 -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXxf86vm -lSM -lwxzlib-2.9 -lwxregexu-2.9 -lwxexpat-2.9 -pthread -L/usr/lib64 -ldl -lm -ldl -lm
> FW> /usr/bin/ld: /home/felix/ResourceManagement/GUI/wxWidgets-2.9.2/my_build/linux64/build_dir_FC13/lib/libwx_gtk2u_core-2.9.a(corelib_gtk_print.o): undefined reference to symbol 'pango_cairo_update_layout'
>
> What does "pkg-config --libs gtk+-2.0" return on your system? I suspect
> that it doesn't include -lpangocairo and we always assumed it would so far.
>

The command "pkg-config --libs gtk+-2.0" gives

-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0

-lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype


-lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0

it seems that the libs are correctly listed.

But if I look into the wxWidgets makefiles (for the samples) created by
the configure command above I see

EXTRALIBS_GUI = -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0


-lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lfreetype -lfontconfig
-lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXxf86vm -lSM

Now they are missing.

> Thanks,
> VZ
>


Vadim Zeitlin

unread,
Sep 8, 2010, 5:22:16 AM9/8/10
to wx-u...@googlegroups.com
On Wed, 08 Sep 2010 00:30:44 +0200 Felix Wolfheimer <f.wolf...@online.de> wrote:

FW> The command "pkg-config --libs gtk+-2.0" gives
FW>
FW> -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
FW> -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype
FW> -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
FW>
FW> it seems that the libs are correctly listed.
FW>
FW> But if I look into the wxWidgets makefiles (for the samples) created by
FW> the configure command above I see
FW>
FW> EXTRALIBS_GUI = -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0
FW> -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lfreetype -lfontconfig
FW> -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXxf86vm -lSM
FW>
FW> Now they are missing.

That's because they are being explicitly removed thanks to this change
from 5 years ago http://trac.wxwidgets.org/changeset/35357 (thanks "git log
-Scairo", I don't know how would I have found this otherwise).

I think it should probably be just reverted because we do require Cairo
now and the GTK+ 2.4 which is the earliest version we still support already
uses it AFAIR.

Any objections to undoing this change?

Reply all
Reply to author
Forward
0 new messages