Version: (using KDE KDE 3.5.0) Installed from: Gentoo Packages Compiler: gcc 3.4.4 OS: Linux kdelibs 3.5 fails if hspell 0.7 is installed. /bin/sh ../../../libtool --silent --tag=CXX --mode=compile i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../dcop -I../../../kdecore -I../../../kio/kssl -I../../../kjs -I../../../kspell2 -I../../.. -I../../../dcop -I../../../libltdl -I../../../kdefx -I../../../kdecore -I../../../kdecore -I../../../kdeui -I../../../kio -I../../../kio/kio -I../../../kio/kfile -I../../.. -I/usr/qt/3/include -I. -I/usr/kde/3.5/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -O3 -mtune=pentium3 -march=pentium3 -pipe -fomit-frame-pointer -mmmx -msse -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o kspell_hspell_la.all_cpp.lo kspell_hspell_la.all_cpp.cpp In file included from kspell_hspell_la.all_cpp.cpp:3: kspell_hspelldict.cpp: In destructor `virtual HSpellDict::~HSpellDict()': kspell_hspelldict.cpp:43: error: `hspell_uninit' undeclared (first use this function) kspell_hspelldict.cpp:43: error: (Each undeclared identifier is reported only once for each function it appears in.) kspell_hspelldict.cpp: At global scope: kspell_hspelldict.cpp:103: warning: unused parameter 'word' kspell_hspelldict.cpp:96: warning: unused parameter 'word' kspell_hspelldict.cpp:89: warning: unused parameter 'bad' kspell_hspelldict.cpp:89: warning: unused parameter 'good' make: *** [kspell_hspell_la.all_cpp.lo] Error 1 removing hspell and doing configure fixes it. the problem is that hspell_uninit is in > 0.8 and not 0.8<= as written in comments. reported here too: http://bugs.gentoo.org/show_bug.cgi?id=114161
This is a similar bug to #117329. This is what I submitted to fix it : I had a similar problem - I fixed it by modifying the following line in kspell_hspellclient.h : #include "hspell.h" to /* libhspell is a C library and it does not have #ifdef __cplusplus */ extern "C" { #include "hspell.h" } This is what they had in kspell_hspelldict.h but they forgot to do it for kspell_hspellclient.h which gets called via the #include "kspell_hspellclient.cpp" line in kspell_hspell_la.all_cpp.cpp. Just go to the konstruct/kde/kdelibs/work/kdelibs-3.5.0/kspell2/plugins/hspell directory and modify this file. Then type make to recompile it.
actually i've compiled without hspeel. i've removed it cause i don't need it! don't know why i had that since i don't need hebrew spell. however the problem is: grep "uninit" /usr/lib/hspell.h" gives nothing. there is no prototype of such function in hspell 0.7. if you add a fake skeleton, it fails on linking later, due to other functions too. i'm just a casual reporter :P
SVN commit 486041 by thiago: Fixing the bug in kspell's hspell plugin. Thanks to Jeff Manson for the patch. BUG:117329,117722,117360 M +3 -0 kspell_hspellclient.h --- trunk/KDE/kdelibs/kspell2/plugins/hspell/kspell_hspellclient.h #486040:486041 @@ -25,7 +25,10 @@ #include "client.h" #include <qobject.h> +/* libhspell is a C library and it does not have #ifdef __cplusplus */ +extern "C" { #include "hspell.h" +} namespace KSpell2 { class Dictionary;