У меня проблема с получением кода 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:
build / Debug / MinGW-Windows / XmlParser.o: в функции ZN9XmlParser11processNodeEP14_xmlTextReader':
C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:26: undefined reference to
xmlTextReaderConstName '
C: \ Users ... \ Documents \ NetBeansProjects \ XmlBallotParser / XmlParser.cpp: 30: неопределенная ссылка на xmlTextReaderConstValue'
C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:37: undefined reference to
xmlTextReaderHasValue '
C: \ Users ... \ Documents \ NetBeansProjects \ XmlBallotParser / XmlParser.cpp: 37: неопределенная ссылка на xmlTextReaderIsEmptyElement'
C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:37: undefined reference to
xmlTextReaderNodeType '
C: \ Users ... \ Documents \ NetBeansProjects \ XmlBallotParser / XmlParser.cpp: 37: неопределенная ссылка на xmlTextReaderDepth'
C:\Users\...\Documents\NetBeansProjects\XmlBallotParser/XmlParser.cpp:41: undefined reference to
xmlStrlen '
build / Debug / 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. Я видел, что кто-то прямо здесь имел ту же ошибку, и что ответом на эту проблему является правильная установка аргумента для компиляции программы, однако я не могу понять, как это сделать в NetBeans / Windows. Я думаю, что мне нужны детали о том, как на самом деле получить правильные аргументы. Любая помощь будет оценена. Спасибо.