htmlcxx0.84 ошибка компиляции - PullRequest
       0

htmlcxx0.84 ошибка компиляции

0 голосов
/ 28 февраля 2012

Я пытаюсь использовать htmlcxx для анализа веб-страницы. Проблема в том, что пример не компилируется.

Я получаю это при запуске g++ webscrsp.cpp:

/tmp/ccHiUM6o.o: In function `main':
webscrsp.cpp:(.text+0x86): undefined reference to `htmlcxx::HTML::ParserSax::parse(std::basic_string, std::allocator > const&)'
webscrsp.cpp:(.text+0xb8): undefined reference to `htmlcxx::HTML::operator >&, tree > > const&)'
/tmp/ccHiUM6o.o: In function `htmlcxx::HTML::ParserDom::ParserDom()':
webscrsp.cpp:(.text._ZN7htmlcxx4HTML9ParserDomC1Ev[htmlcxx::HTML::ParserDom::ParserDom()]+0x22): undefined reference to `vtable for htmlcxx::HTML::ParserDom'
/tmp/ccHiUM6o.o: In function `htmlcxx::HTML::ParserDom::~ParserDom()':
webscrsp.cpp:(.text._ZN7htmlcxx4HTML9ParserDomD1Ev[htmlcxx::HTML::ParserDom::~ParserDom()]+0x16): undefined reference to `vtable for htmlcxx::HTML::ParserDom'
collect2: ld returned 1 exit status

мой код

    #include <string>
    #include <iostream>
    #include <sstream>
    #include </home/lubhavan/htmlcxx-0.84/html/ParserDom.h>
    using namespace std;
    using namespace htmlcxx;

    int main()
    {
      string html ="<html > <head> <title > hi  iam  titile </title> </head> <body> <p>               what  can i do </p> </body> </html>";
    HTML::ParserDom parser;
     tree<HTML::Node> dom = parser.parseTree(html) ;
     cout << dom <<endl;

     cout << endl;
     return 0;
     }

Пожалуйста, помогите мне, поскольку я должен сделать это очень скоро. Я не могу понять, в чем дело ...

Заранее спасибо ..

1 Ответ

1 голос
/ 28 февраля 2012

Если вся ваша командная строка

g++ webscrsp.cpp 

, вы получите ошибку компоновщика, поскольку вы не связываетесь с библиотекой, содержащей фактический код.

Вы должны что-то сделатьнапример:

g++ webscrsp.cpp -L/path/to/library -Wl,-rpath=/path/to/library -lname_of_library

В приведенном выше примере командной строки /path/to/library - это путь к файлу с именем libXXX.a, где XXX - это name_of_library.

InВ вашем случае вам нужно поискать где-нибудь в /home/lubhavan/htmlcxx-0.84/, чтобы найти файл, который начинается с lib и заканчивается на .a./path/to/library - это путь к файлу.name_of_library - это имя файла без начального lib и завершающего .a.

...