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でこれを行う方法を理解できません。私が必要とするのは、実際に議論を正しいものにする方法の詳細です。どんな助けもありがとう。ありがとうございました。
注:ここから私のためにコード自体も正しいことを知っています:http://xmlsoft.org/examples/reader1.c – RedHack