2011-09-16 23 views
0

NetBeansでC++コードを正しくコンパイルできない問題があります。特に、libXml2を扱うコードです。私は、libxml2のダウンロードなどがフォルダに入れて、私は次のような機能を追加するとき、コード自体は、しかし、その中の任意のlibxml2の言及せずに罰金コンパイルされることを知っている:NetBeansでC++でlibXml2を使用する

void XmlParser::processNode(xmlTextReaderPtr reader){ 
    const xmlChar *name, *value; 
    name = xmlTextReaderConstName(reader); 
    if (name == NULL) 
    name = BAD_CAST "--"; 

    value = xmlTextReaderConstValue(reader); 

    printf("%d %d %s %d %d", 
     xmlTextReaderDepth(reader), 
     xmlTextReaderNodeType(reader), 
     name, 
     xmlTextReaderIsEmptyElement(reader), 
     xmlTextReaderHasValue(reader)); 
    if (value == NULL) 
    printf("\n"); 
    else { 
     if (xmlStrlen(value) > 40) 
      printf(" %.40s...\n", value); 
     else 
     printf(" %s\n", value); 
    } 
} 
void XmlParser::streamFile(const char *filename) { 
    xmlTextReaderPtr reader; 
    int ret; 
    reader = xmlReaderForFile(filename, NULL, 0); 
    if (reader != NULL) { 
     ret = xmlTextReaderRead(reader); 
     while (ret == 1) { 
      //processNode(reader); 
      ret = xmlTextReaderRead(reader); 
     } 
     xmlFreeTextReader(reader); 
     if (ret != 0) { 
      fprintf(stderr, "%s : failed to parse\n", filename); 
     } 
    } else { 
     fprintf(stderr, "Unable to open %s\n", filename); 
    } 
} 

私がクリックしたときに、私は次のような結果を得ます構築:

ビルド/デバッグ/ MinGWの-のWindows/XmlParser.o:機能ZN9XmlParser11processNodeEP14_xmlTextReader': C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:26: undefined reference to xmlTextReaderConstName ':\ユーザー... \ドキュメント\ NetBeansProjects \ XmlBallotParser/XmlParser.cpp:30:xmlTextReaderConstValue' C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:37: undefined reference to xmlTextReaderHasValueへの未定義参照 C' Inを C:\ Users ... \ Documents \ NetBeansProjects \ XmlBallotParser/XmlParser.cpp:37:未定義参照xmlTextReaderIsEmptyElement' C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:37: undefined reference to xmlTextReaderNodeType ' C:\ユーザー... \ドキュメント\ NetBeansProjects \ XmlBallotParser/XmlParser.cpp:37:xmlTextReaderDepth' C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:41: undefined reference to xmlStrlenへの未定義参照' ビルド/デバッグ/ MinGWの-のWindows/XmlParser.o:機能ZN9XmlParser10streamFileEPKc': C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:51: undefined reference to xmlReaderForFile」 Cには: \ Users \ Documents \ NetBeansProjects \ XmlBallotParser/XmlParser.cpp:53:未定義の参照xmlTextReaderRead' C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:56: undefined reference to xmlTextReaderRead ' C:\ Users ... \ Documents \ NetBeansProjects \ XmlBallotParser/XmlParser.cpp:58:未定義の `xmlFreeTextReader '

これは、libXml2を使用してプログラムをコンパイルする際に問題が発生することを示唆しています。私は誰かが右のhereに同じエラーがあり、この問題に対する答えがプログラムをコンパイルするための引数を正しく設定していることがわかりましたが、NetBeans/Windowsでこれを行う方法を理解できません。私が必要とするのは、実際に議論を正しいものにする方法の詳細です。どんな助けもありがとう。ありがとうございました。

+0

注:ここから私のためにコード自体も正しいことを知っています:http://xmlsoft.org/examples/reader1.c – RedHack

答えて

0

-lxml2(gcc)またはlibxml2.lib(visual studio)をリンカーに追加してください。

+0

私はminGWを持っていますので、その方法を完全にはわかりません。私がcygwinをインストールした場合、gccはありますか? – RedHack

+0

申し訳ありませんが、私はこの初心者の一種です... – RedHack

関連する問題