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
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/
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
>
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?