在ubuntu机器上构建htdig

时间:2015-04-24 07:12:09

标签: c++ linux ubuntu

在我的Ubuntu机器上安装了htdig(www.htdig.org)。例如"其中htdig"给我,/ usr / bin / htdig

我想在/ var / www / my_web_site下安装htdig 即/ var / www / my_web_site / htdig

额外信息:

  • gcc version 4.9.1(Ubuntu 4.9.1-16ubuntu6)
  • GNU Make 4.0

对于htdig-3.1.6:

当我跑步" ./ configure"时,我得到了:

  

configure:error:要编译ht:// Dig,你需要一个C ++库。   尝试安装libstdc ++

"运行/ sbin / ldconfig -p | grep stdc ++"

我有:

  • libstdc ++。so.6(libc6,x86-64)=> / usr / lib中/ x86_64的-Linux的GNU /的libstdc ++。so.6
  • libstdc ++。so.6(libc6)=> / usr / lib中/ I386-Linux的GNU /的libstdc ++。so.6

我也试过 htdig-3.2.0b6

我运行" ./ configure",看起来很好。我得到的东西就像"现在你必须运行' make'然后是“安装'"

当我跑步" make"时,我遇到了很多错误:

.....
Making all in htsearch
make[1]: Entering directory '/var/www/test/testme/sounddesign/htdig-3.2.0b6/htsearch'
g++ -DHAVE_CONFIG_H -I. -I. -I../include -DDEFAULT_CONFIG_FILE=\"/opt/www/conf/htdig.conf\" -I../include -I../htlib -I../htnet -I../htcommon -I../htword -I../db -I../db -DCONFIG_DIR=\"/opt/www/conf\" -I../htfuzzy     -g -O2 -Wall -fno-rtti -fno-exceptions -c -o Display.o `test -f 'Display.cc' || echo './'`Display.cc
In file included from Display.cc:30:0:
Collection.h:39:10: error: extra qualification ‘Collection::’ on member ‘Open’ [-fpermissive]
     void Collection::Open();
....
....
....
Display.cc:830:32: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
     if (input->exists("endyear"))
                                ^

知道我应该做什么吗?

1 个答案:

答案 0 :(得分:1)

编译器抱怨Collection.h中的类前缀Collection::是不必要的,现在是非法的。

只需将htsearch / Collection.h标题更改为:

class Collection : public Object
{
public:
    //
    // Construction/Destruction
    //
    Collection(const char *name, const char *wordFile,
               const char *indexFile, const char *docFile,
               const char *docExcerpt);
    ~Collection();

    // COMMENT OUT OR REMOVE THESE TWO LINES:
    //    void Collection::Open();
    //    void Collection::Close();
    // ADD THESE TWO:
    void Open();
    void Close();

(注释掉/删除旧行,声明打开/关闭并添加上面的最后两行)

这样做之后,htdig 3.2 b 6为我成功编译。警告只是:警告。他们不会阻止成功编译。现在这是一个非常古老的代码库,有些C ++总是不符合当前的编译器标准。