Re: [Ekiga-devel-list] Win32 - Cross compile+ boost
- From: Michael Rickmann <mrickma gwdg de>
- To: Ekiga development mailing list <ekiga-devel-list gnome org>
- Subject: Re: [Ekiga-devel-list] Win32 - Cross compile+ boost
- Date: Sat, 05 Sep 2009 20:39:33 +0200
Julien Puydt schrieb:
Michael Rickmann a écrit :
Next compilation fails for videooutput-manager-dx.cpp. I feel not fit
enough to interpret the 67 kB long error log (attached).
Well... C++ templates often lead to worse. Notice that concepts, which
were supposed to make it into C++0x, should have helped make error
messages more readable. They were supposed, and should have helped. They
were rejected...
Certainly the source file is not used for linux and when comparing the
code to videooutput-manager-x.cpp the -dx.cpp has a number of nested
(boost::bind (boost::bind (... which the -x.cpp does not have. Making
them single "(boost::bind ... this, ..." lets compilation proceed. As
I am not fit in boost signals I will not provide a patch.
Oh, yes! I pushed a would-be fix for that ; sorry!
Next error occurs while linking ekiga.exe:
....
lstrmiids -lole32 -luuid -loleaut32 -lquartz -ldnsapi
-lboost_signals-d.dll /home/mrickma/src/ekiga/win32/lib/libxml2.dll.a
-lws2_32 -L/home/mrickma/src/ekiga/win32/lib
accounts.o: In function `_ZN17GmAccountsWindow_D1Ev':
gui/accounts.cpp:(.text$_ZN5boost6detail12shared_countC1INS_7signals6detail9slot_base6data_tEEEPT_[boost::detail::shared_count::shared_count<boost::signals::detail::slot_base::data_t>(boost::signals::detail::slot_base::data_t*)]+0x5d):
undefined reference to `boost::throw_exception(std::exception const&)'
collect2: ld returned 1 exit status
Is there another boost lib which has to be compiled?
No. It's a problem where boost thinks we don't compile with exceptions,
and hence we have that function to write ourselves. Is it with an up to
date master? I thought I had fixed that one :-/
Thanks,
Snark
Ok I think I got that one working with attached patch which simply adds
the -fexceptions flag to the AM_CXXFLAGS in src/Makefile.am as you had
done already for the lib Makefile.am. But in general I am not happy with
the C++ exceptions. It seems to add considerable overhad to Win32 ekiga.
Can't we write a boost::throw_exception function which writes a PTRACE
line and then exits and forget about the C++ exceptions?
I upgraded my boost mini-dev at
http://wwwuser.gwdg.de/~mrickma/ekiga/others/boost-1.40_mgw-mini-dev.tar.bz2
by adding some truly gcc-4.2.1 crosscompiled boost_signals libs, it
makes life easier on Debian based MinGW32 installations.
As I would like to improve Win32 Ekiga stable for the next release I
just uploaded
http://wwwuser.gwdg.de/~mrickma/ekiga/ekiga_build-3.3.1-git-356_gd6ff5f8.tgz
for anybody to continue Win32 work on Master. Note, the Makefile is
unfinished (copy boost by hand, remove sigc), apparently we can't any
longer link Ptlib statically, the last Opal version which worked for me
today is 23327.
Michael
diff -ur ekiga.orig/src/Makefile.am ekiga/src/Makefile.am
--- ekiga.orig/src/Makefile.am 2009-09-04 09:18:22.000000000 +0200
+++ ekiga/src/Makefile.am 2009-09-04 09:20:42.000000000 +0200
@@ -152,7 +152,9 @@
fi \
fi
-AM_CXXFLAGS = $(GTK_CFLAGS) $(GLIB_CFLAGS) $(GNOME_CFLAGS) $(DBUS_CFLAGS) $(BONOBO_CFLAGS) $(OPAL_CFLAGS) $(PTLIB_CFLAGS) $(BOOST_CPPFLAGS) $(SIGC_CFLAGS) $(XML_CFLAGS) $(NOTIFY_CFLAGS)
+# FIXME: here we add -fexceptions because ptlib&opal put them out and that's a problem for boost...
+AM_CXXFLAGS = $(GTK_CFLAGS) $(GLIB_CFLAGS) $(GNOME_CFLAGS) $(DBUS_CFLAGS) $(BONOBO_CFLAGS) $(OPAL_CFLAGS) $(PTLIB_CFLAGS) \
+ $(BOOST_CPPFLAGS) $(SIGC_CFLAGS) $(XML_CFLAGS) $(NOTIFY_CFLAGS) -fexceptions
AM_LIBS = $(GTK_LIBS) $(GLIB_LIBS) $(GNOME_LIBS) $(DBUS_LIBS) $(BONOBO_LIBS) $(OPAL_LIBS) $(PTLIB_LIBS) $(BOOST_LDFLAGS) $(BOOST_LIBS) $(XML_LIBS) $(NOTIFY_LIBS)
ekiga_LDADD = \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]