Using a compiled downloaded version of Soprano 2.8, building my app in Qt Creator (Building) build I get:
/usr/lib/gcc/i586-suse-linux/4.7/../../../../i586-suse-linux/bin/ld: warning: libclucene.so.0, needed by /usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::document::Document::add(lucene::document::Field&)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::store::FSDirectory::getDirectory(char const, bool)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::document::Document::getValues(wchar_t const*)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::queryParser::QueryParser::QueryParser(wchar_t const, lucene::analysis::Analyzer)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::IndexReader::document(int)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::index::Term::Term(wchar_t const, wchar_t const)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::IndexReader::open(lucene::store::Directory*, bool)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::document::Document::Document()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::IndexReader::termDocs(lucene::index::Term*) const'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::document::Document::removeFields(wchar_t const)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::IndexReader::isLocked(lucene::store::Directory*)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::search::Hits::length() const'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::document::Field::isIndexed()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::document::Document::get(wchar_t const) const'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::IndexReader::indexExists(lucene::store::Directory const*)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::search::Hits::doc(int)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::Term::text() const'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::index::IndexReader::deleteDocument(int)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::search::Hits::Hits(lucene::search::Searcher*, lucene::search::Query*, lucene::search::Filter*, lucene::search::Sort const*)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::analysis::standard::StandardAnalyzer::StandardAnalyzer()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::search::IndexSearcher::IndexSearcher(lucene::store::Directory*)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
CLuceneError::what()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::Term::~Term()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::index::IndexReader::unlock(lucene::store::Directory)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::document::Field::Field(wchar_t const*, wchar_t const*, int)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::document::Field::stringValue()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::queryParser::QueryParser::parse(wchar_t const*)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::index::IndexWriter::addDocument(lucene::document::Document, lucene::analysis::Analyzer)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to CLuceneError::~CLuceneError()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::document::DocumentFieldEnumeration::nextElement()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::index::IndexWriter::optimize()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::index::IndexWriter::close()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::document::DocumentFieldEnumeration::hasMoreElements() const'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::search::Hits::score(int)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::document::Document::fields() const'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::index::IndexReader::deleteDocuments(lucene::index::Term)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::document::Field::name()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
CLuceneError::CLuceneError(CLuceneError const&)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to lucene::queryParser::QueryParser::~QueryParser()'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to
lucene::index::IndexWriter::IndexWriter(lucene::store::Directory, lucene::analysis::Analyzer*, bool, bool)'
/usr/lib/gcc/i586-suse-linux/4.7/../../../libsopranoindex.so: undefined reference to `lucene::index::IndexReader::close()'
I tried SOPRANO_DISABLE_LUCENE_INDEX=1 from http://sourceforge.net/p/soprano/bugs/19/ but I must been adding it at the wrong place because it does nothing for me.
Where and when should I add this switch?
Ok, so I just saw this switch in cmake config when preparing to build Soprano.
(I guess this ticket can be closed then.)
By the way, this does mean that Soprano has to be manually build before developing with this library. Is there no way around this?
Simply do not link your project against libsopranoindex. These linker erros are distribution-specific. This is not a Soprano bug.