Possible Duplicate:
What is an undefined reference/unresolved external symbol error and how do I fix it?
我开始用C语言开发,希望使用libxml2C库来编写一个简单的xml文件。
为此,我创建了单独的源文件,它应该提供编写xml文件的函数。
xmlutils.h:代码:

#include <libxml/encoding.h>
#include <libxml/xmlwriter.h>


void writeXML(const char *uri);

xmlutils.c:代码:
#include <libxml/encoding.h>
#include <libxml/xmlwriter.h>

void writeXML(const char *uri){

int rc;
xmlTextWriterPtr writer;
xmlChar *tmp;

 /* Create a new XmlWriter for uri, with no compression. */
writer = xmlNewTextWriterFilename(uri, 0);
if (writer == NULL) {
    printf("testXmlwriterFilename: Error creating the xml writer\n");
    return;
}

 //more code...


}

在我的主.c文件中,我想使用这个writeXML函数:
#include<stdio.h>
#include<string.h>
#include "xmlutils.h"

main() {

writeXML("test.xml");
}

Im编译方式:
gcc -o myapp main.c xmlutils.c -I/usr/include/libxml2

我得到:
xmlutils.c:(.text+0x19): undefined reference to `xmlNewTextWriterFilename'
collect2: ld returned 1 exit status

我在这里做错什么了?
如果我看一下usr/include/libxml2/libxml/xmlwriter.h文件,就会发现函数。。。
谢谢

最佳答案

不要忘记要链接的对象后面的选项-lxml2

gcc -o myapp main.c xmlutils.c -I/usr/include/libxml2 -lxml2

关于c - 解决对“xmlNewTextWriterFilename”的 undefined reference ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14665620/

10-13 04:55