c - 解决对 'xmlNewTextWriterFilename' 的 undefined reference

标签 c xml compilation libxml2

<分区>

Possible Duplicate:
What is an undefined reference/unresolved external symbol error and how do I fix it?

我开始用 C 开发,想使用 libxml2 C-Library 编写一个简单的 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...


}

在我的 ma​​in.c 文件中,我想使用这个 writeXML 函数:

#include<stdio.h>
#include<string.h>
#include "xmlutils.h"

main() {

writeXML("test.xml");
}

我正在编译:

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/

相关文章:

c++ - 为什么多线程更慢?

c++ - C - Windows 函数(套接字)的编译错误

c++ - 调试链接错误的最佳实践

编译C问题 "no such directory"

c - 为什么我们在 for 循环中使用有符号整数?

c - Unix - 将文件中的一行写入 char* var,然后将其保存为整数

c - unsigned char 的数组声明

java - 入站网关中的 HttpMessageConverter 错误处理

javascript - 如何从 Javascript 中的 AtomPub XML HTTP 响应中提取值(适用于 Google Apps 管理设置 API)

java - "Don' t show anymore"ThickBox in Android Activity