(kde4 svn)kdenetwork/kopete doesn't compile with jabber protocol when using hidden visibility + patch
- Date: Mon, 21 Jan 2008 21:27:52 +0100
- From: Stephan Wezel <s.wezel@xxxxxxxx>
- Subject: (kde4 svn)kdenetwork/kopete doesn't compile with jabber protocol when using hidden visibility + patch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
kdenetwork/kopete doesn't compile when kopete should be compiled with jabber support and the gcc feature hidden visibility is used.
The compilation stops with following error messages:
[ 86%] Building CXX object kopete/plugins/texteffect/CMakeFiles/kopete_texteffect.dir/texteffectplugin.o
CMakeFiles/kopete_jabber.dir/tasks/jt_ahcommand.o: In function `QList<XMPP::XData::Field>::free(QListData::Data*)':
jt_ahcommand.cpp:(.text._ZN5QListIN4XMPP5XData5FieldEE4freeEPN9QListData4DataE[QList<XMPP::XData::Field>::free(QListData::Data*)]+0x3a): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `JabberXDataWidget::fields() const':
jabberxdatawidget.cpp:(.text+0x22f): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `JabberXDataWidget::JabberXDataWidget(XMPP::XData const&, QWidget*)':
jabberxdatawidget.cpp:(.text+0x378): undefined reference to `XMPP::XData::Field::type() const'
jabberxdatawidget.cpp:(.text+0x47b): undefined reference to `XMPP::XData::Field::type() const'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L763':
jabberxdatawidget.cpp:(.text+0x557): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L764':
jabberxdatawidget.cpp:(.text+0x60d): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L765':
jabberxdatawidget.cpp:(.text+0x761): undefined reference to `XMPP::XData::Field::Field()'
jabberxdatawidget.cpp:(.text+0x843): undefined reference to `XMPP::XData::Field::~Field()'
jabberxdatawidget.cpp:(.text+0x864): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L766':
jabberxdatawidget.cpp:(.text+0x9d4): undefined reference to `XMPP::XData::Field::~Field()'
jabberxdatawidget.cpp:(.text+0x9f5): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L768':
jabberxdatawidget.cpp:(.text+0xac9): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o:jabberxdatawidget.cpp:(.text+0xc39): more undefined references to `XMPP::XData::Field::~Field()' follow
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `JabberXDataWidget::JabberXDataWidget(XMPP::XData const&, QWidget*)':
jabberxdatawidget.cpp:(.text+0x1598): undefined reference to `XMPP::XData::Field::type() const'
jabberxdatawidget.cpp:(.text+0x169b): undefined reference to `XMPP::XData::Field::type() const'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L990':
jabberxdatawidget.cpp:(.text+0x1777): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L991':
jabberxdatawidget.cpp:(.text+0x182d): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L992':
jabberxdatawidget.cpp:(.text+0x1981): undefined reference to `XMPP::XData::Field::Field()'
jabberxdatawidget.cpp:(.text+0x1a63): undefined reference to `XMPP::XData::Field::~Field()'
jabberxdatawidget.cpp:(.text+0x1a84): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L993':
jabberxdatawidget.cpp:(.text+0x1bf4): undefined reference to `XMPP::XData::Field::~Field()'
jabberxdatawidget.cpp:(.text+0x1c15): undefined reference to `XMPP::XData::Field::~Field()'
CMakeFiles/kopete_jabber.dir/jabberxdatawidget.o: In function `.L995':
jabberxdatawidget.cpp:(.text+0x1ce9): undefined reference to `XMPP::XData::Field::~Field()'
I have found out, that the methods of the Field class are hidden (due the activ hidden visibility feature )
After adding IRIS_EXPORT to the definition of the XData::Field class the compilation works fine
Here is the patch:
Index: kopete/protocols/jabber/libiris/iris/include/xmpp_xdata.h
===================================================================
- --- kopete/protocols/jabber/libiris/iris/include/xmpp_xdata.h (Revision 764233)
+++ kopete/protocols/jabber/libiris/iris/include/xmpp_xdata.h (Arbeitskopie)
@@ -69,7 +69,7 @@
bool isValid() const;
public:
- - class Field {
+ class IRIS_EXPORT Field {
public:
Field();
~Field();
Regards
Stephan Wezel
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
iD8DBQFHlQBMsfeauH544Q8RAshJAJ90CiwwbWjwDFGh57PUXKCD6aH/KwCfS/qX
yXRr60cRP7lDI6B+V3wPP90=
=6fiy
-----END PGP SIGNATURE-----
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<