在我的Ubuntu计算机上,安装了htdig(www.htdig.org)。例如“哪个htdig”给了我/ usr / bin / htdig

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

额外信息:

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

  • 对于htdig-3.1.6:

    当我运行“./configure”时,我得到:



    “运行/ 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 install'”的信息

    当我运行“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"))
                                    ^
    

    知道我该怎么办吗?

    最佳答案

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

    只需将htsearch / Collection.h header 更改为此:

    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();
    

    (注释/删除声明Open / Close的旧行,并在上面添加最后两行)

    完成此操作后,htdig 3.2 b 6为我成功编译。警告仅仅是:警告。它们不会阻止成功的编译。现在这是一个非常古老的代码库,并且某些C++始终不符合当前的编译器标准。

    关于c++ - 在Ubuntu机器上构建htdig,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29840962/

    10-09 00:31