Now GoldenDict fails to compile for a lot Linux distributions.
It stopped to compile between end of 2017 Jun and end of 2017 July.
See https://build.opensuse.org/package/show/office:goldendict/goldendict-master
Only „bleeding edge“ openSUSE Tumbleweed ( aka openSUSE Factory) do success.
Seems problem related with hunspell (success with 1.6, fails with 1.4 and older version):
[ 69s] hunspell.cc: In member function 'void HunspellMorpho::{anonymous}::HunspellArticleRequest::run()':
[ 69s] hunspell.cc:273:38: error: no matching function for call to 'Hunspell::spell(std::string&)'
[ 69s] if ( hunspell.spell( encodedWord ) )
[ 69s] ^
[ 69s] hunspell.cc:273:38: note: candidate is:
[ 69s] In file included from hunspell.cc:22:0:
[ 69s] /usr/include/hunspell/hunspell.hxx:56:7: note: int Hunspell::spell(const char, int, char)
[ 69s] int spell(const char * word, int * info = NULL, char * root = NULL);
[ 69s] ^
[ 69s] /usr/include/hunspell/hunspell.hxx:56:7: note: no known conversion for argument 1 from 'std::string {aka std::basic_string
[ 69s] hunspell.cc:285:49: error: no matching function for call to 'Hunspell::suggest(std::string&)'
[ 69s] suggestions = hunspell.suggest( encodedWord );
[ 69s] ^
[ 69s] hunspell.cc:285:49: note: candidate is:
[ 69s] In file included from hunspell.cc:22:0:
[ 69s] /usr/include/hunspell/hunspell.hxx:66:7: note: int Hunspell::suggest(char, const char)
[ 69s] int suggest(char* slst, const char * word);
[ 69s] ^
[ 69s] /usr/include/hunspell/hunspell.hxx:66:7: note: candidate expects 2 arguments, 1 provided
[ 69s] hunspell.cc: In function 'QVector
[ 69s] hunspell.cc:507:49: error: no matching function for call to 'Hunspell::analyze(std::string&)'
[ 69s] suggestions = hunspell.analyze( encodedWord );
[ 69s] ^
[ 69s] hunspell.cc:507:49: note: candidate is:
[ 69s] In file included from hunspell.cc:22:0:
[ 69s] /usr/include/hunspell/hunspell.hxx:78:7: note: int Hunspell::analyze(char
[ 69s] int analyze(char* slst, const char * word);
[ 69s] ^
[ 69s] /usr/include/hunspell/hunspell.hxx:78:7: note: candidate expects 2 arguments, 1 provided
[ 69s] hunspell.cc: In member function 'void HunspellMorpho::{anonymous}::HunspellPrefixMatchRequest::run()':
[ 69s] hunspell.cc:662:38: error: no matching function for call to 'Hunspell::spell(std::string&)'
[ 69s] if ( hunspell.spell( encodedWord ) )
[ 69s] ^
[ 69s] hunspell.cc:662:38: note: candidate is:
[ 69s] In file included from hunspell.cc:22:0:
[ 69s] /usr/include/hunspell/hunspell.hxx:56:7: note: int Hunspell::spell(const char, int, char)
[ 69s] int spell(const char * word, int * info = NULL, char * root = NULL);
[ 69s] ^
[ 69s] /usr/include/hunspell/hunspell.hxx:56:7: note: no known conversion for argument 1 from 'std::string {aka std::basic_string
[ 70s] Makefile:2780: recipe for target 'build/hunspell.o' failed
[ 70s] make: * [build/hunspell.o] Error 1
Do you pass "CONFIG+=old_hunspell" to qmake while build with hunspell 1.4 as mentioned in readme.md?
6 months passed. I wonder why this issue is not closed.
I am getting this issue on Debian stretch:
CONFIG+=old_hunspell qmake-qt4 && make
/usr/include/hunspell/hunspell.hxx:170:7: note: candidate expects 2 arguments, 1 provided
hunspell.cc: In member function ‘void HunspellMorpho::{anonymous}::HunspellPrefixMatchRequest::run()’:
hunspell.cc:668:38: error: no matching function for call to ‘Hunspell::spell(std::__cxx11::string&)’
if ( hunspell.spell( encodedWord ) )
^
In file included from hunspell.cc:22:0:
/usr/include/hunspell/hunspell.hxx:138:7: note: candidate: int Hunspell::spell(const char*, int*, char**)
int spell(const char* word, int* info = NULL, char** root = NULL);
^~~~~
/usr/include/hunspell/hunspell.hxx:138:7: note: no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const char*’
Makefile:2563: recipe for target 'build/hunspell.o' failed
make: *** [build/hunspell.o] Error 1
CONFIG+=old_hunspell qtchooser -run-tool=qmake -qt=5 && make
/usr/include/hunspell/hunspell.hxx:170:7: note: candidate expects 2 arguments, 1 provided
hunspell.cc: In member function ‘void HunspellMorpho::{anonymous}::HunspellPrefixMatchRequest::run()’:
hunspell.cc:668:38: error: no matching function for call to ‘Hunspell::spell(std::__cxx11::string&)’
if ( hunspell.spell( encodedWord ) )
^
In file included from hunspell.cc:22:0:
/usr/include/hunspell/hunspell.hxx:138:7: note: candidate: int Hunspell::spell(const char*, int*, char**)
int spell(const char* word, int* info = NULL, char** root = NULL);
^~~~~
/usr/include/hunspell/hunspell.hxx:138:7: note: no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const char*’
Makefile:3045: recipe for target 'build/hunspell.o' failed
You should pass "CONFIG+=old_hunspell" as parameter for qmake
, i.e. qmake "CONFIG+=old_hunspell"
instead of CONFIG+=old_hunspell qmake
.
thanks!
Most helpful comment
You should pass "CONFIG+=old_hunspell" as parameter for
qmake
, i.e.qmake "CONFIG+=old_hunspell"
instead ofCONFIG+=old_hunspell qmake
.