簡體   English   中英

在NetBeans中的C ++中使用libXml2

[英]Using libXml2 in C++ with Netbeans

我在使C ++代碼在Netbeans中正確編譯時遇到問題,特別是處理libXml2的代碼。 我下載了libXml2並將其放在include文件夾中,並且我知道代碼本身可以很好地編譯,但是其中沒有任何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);
    }
}

單擊生成時,我得到以下結果:

build / Debug / MinGW-Windows / XmlParser.o:在函數ZN9XmlParser11processNodeEP14_xmlTextReader': C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:26: undefined reference to xmlTextReaderConstName'的ZN9XmlParser11processNodeEP14_xmlTextReader': C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:26: undefined reference to C:\\ Users ... \\ Documents \\ NetBeansProjects \\ XmlBallotParser / XmlParser.cpp:30:對xmlTextReaderConstValue' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:37: undefined reference to未定義引用xmlTextReaderConstValue' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:37: undefined reference to xmlTextReaderHasValue'的xmlTextReaderConstValue' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:37: undefined reference to C:\\ Users。 。\\ Documents \\ NetBeansProjects \\ XmlBallotParser / XmlParser.cpp:37:對xmlTextReaderIsEmptyElement' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:37: undefined reference to未定義引用: xmlTextReaderIsEmptyElement' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:37: undefined reference to xmlTextReaderNodeType'C:\\ Users的xmlTextReaderIsEmptyElement' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:37: undefined reference to 。 .. \\ Documents \\ NetBeansProjects \\ XmlBallotParser / XmlParser.cpp:37:對xmlTextReaderDepth' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:41: undefined reference to未定義引用xmlTextReaderDepth' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:41: undefined reference to xmlStrlen的xmlTextReaderDepth' C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:41: undefined reference to '構建/調試/ MinGW-Windows / XmlParser.o:在函數ZN9XmlParser10streamFileEPKc': C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:51: undefined reference to ZN9XmlParser10streamFileEPKc': C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:51: undefined reference to xmlReaderForFile'的ZN9XmlParser10streamFileEPKc': C:\\Users\\...\\Documents\\NetBeansProjects\\XmlBallotParser/XmlParser.cpp:51: undefined reference to 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編譯程序時遇到了某種問題。 我看到這里有人發生相同的錯誤,並且此問題的答案是正確設置了用於編譯程序的參數,但是,我無法弄清楚如何在NetBeans / Windows中執行此操作。 我認為我需要的是有關如何正確解決爭論的細節。 任何幫助,將不勝感激。 謝謝。

-lxml2 (gcc)或libxml2.lib (Visual Studio)添加到鏈接器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM