#218 (patch) fix Solaris compilation with -library=stdcxx4

open
nobody
core (32)
5
2013-02-20
2013-02-20
Vladimir Marek
No

Hi,

Thank you for developing such a nice indexing engine.

This problem happens on Solaris (development version but that should not matter), Studio compiler 12.1, using stdcxx4 STL library. On three places compiler complains (in a bit cryptic way) that you are using std::ostream without including <iostream> first. The fix would be simply

--- clucene-core-2.3.3.4/src/shared/CLucene/util/Misc.h st úno 20 01:26:41 2013
+++ clucene-core-2.3.3.4/src/shared/CLucene/util/Misc.h st úno 20 01:24:40 2013
@@ -8,6 +8,7 @@
#define _lucene_util_Misc_H

#include <vector>
+#include <iostream>

CL_NS_DEF(util)
/** A class containing various functions.
--- clucene-core-2.3.3.4/src/core/CLucene/index/IndexWriter.h st úno 20 01:26:41 2013
+++ clucene-core-2.3.3.4/src/core/CLucene/index/IndexWriter.h st úno 20 01:24:40 2013
@@ -7,6 +7,7 @@
#ifndef _lucene_index_IndexWriter_
#define _lucene_index_IndexWriter_

+#include <iostream>
#include "CLucene/util/VoidList.h"
#include "CLucene/util/Array.h"
CL_CLASS_DEF(search,Similarity)
--- clucene-core-2.3.3.4/src/core/CLucene/index/_IndexFileDeleter.h st úno 20 01:26:41 2013
+++ clucene-core-2.3.3.4/src/core/CLucene/index/_IndexFileDeleter.h st úno 20 01:24:40 2013
@@ -7,6 +7,7 @@
#ifndef _lucene_index_IndexFileDeleter_
#define _lucene_index_IndexFileDeleter_

+#include <iostream>
#include "CLucene/util/Equators.h"
#include "IndexDeletionPolicy.h"

--- clucene-core-2.3.3.4/src/core/CLucene/index/IndexModifier.h st úno 20 01:26:41 2013
+++ clucene-core-2.3.3.4/src/core/CLucene/index/IndexModifier.h st úno 20 01:26:34 2013
@@ -7,6 +7,7 @@
#ifndef _lucene_index_IndexModifier_
#define _lucene_index_IndexModifier_

+#include <iostream>

CL_CLASS_DEF(store,Directory)
CL_CLASS_DEF(document,Document)

I haven't tested latest development version, just the released 2.3.3.4, but it seems that the problem is still even in the development version.

Thank you
__
Vlad

Discussion

  • Vladimir Marek
    Vladimir Marek
    2013-02-20

    And there is also

    --- clucene-core-2.3.3.4/src/test/search/TestIndexSearcher.cpp st úno 6 02:03:24 2013
    +++ clucene-core-2.3.3.4/src/test/search/TestIndexSearcher.cpp st úno 6 02:02:50 2013
    @@ -4,6 +4,7 @@
    * Distributable under the terms of either the Apache License (Version 2.0) or
    * the GNU Lesser General Public License, as specified in the COPYING file.
    ------------------------------------------------------------------------------*/
    +#include <unistd.h>
    #include "test.h"

    DEFINE_MUTEX(searchMutex);

    because of the usleep call.

    Thank you
    --
    Vlad