首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接libxml2时出错

链接libxml2时出错
EN

Stack Overflow用户
提问于 2011-10-19 10:07:42
回答 1查看 15K关注 0票数 6

我有一个简单的libxml2示例,但它返回以下错误:

代码语言:javascript
复制
$ gcc -Wall -lxml2 -I/usr/include/libxml2 -o ex1 ex1.c
/tmp/cc6OKSKJ.o: In function `main':
ex1.c:(.text+0x60): undefined reference to `xmlReadFile'
ex1.c:(.text+0x70): undefined reference to `xmlDocGetRootElement'
collect2: ld returned 1 exit status
$ xml2-config --libs
-lxml2
$ xml2-config --cflags
-I/usr/include/libxml2

我使用的是Lubuntu11.10 x86_64,我有我需要的所有包(我想):libxml2、libxml2-dev、libxml2-dbg……以下是示例的代码:

代码语言:javascript
复制
// gcc -Wall -lxml2 -I/usr/include/libxml2 -o ex1 ex1.c

#include <stdio.h>
#include <string.h>
#include <libxml/parser.h>

int main(int argc, char **argv)
{
    xmlDoc *document;
    xmlNode *root, *first_child, *node;
    char *filename;

    if (argc < 2)
    {
        fprintf(stderr, "Usage: %s filename.xml\n", argv[0]);
        return 1;
    }
    filename = argv[1];

    document = xmlReadFile(filename, NULL, 0);
    root = xmlDocGetRootElement(document);
    fprintf(stdout, "Root is <%s> (%i)\n", root->name, root->type);
    first_child = root->children;

    for (node = first_child; node; node = node->next)
    {
        fprintf(stdout, "\t Child is <%s> (%i)\n", node->name, node->type);
    }
    fprintf(stdout, "...\n");
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-19 12:56:42

您的链接行不正确。试一试

代码语言:javascript
复制
gcc -Wall -I/usr/include/libxml2 -o ex1 ex1.c -lxml2

请阅读this以了解为什么命令行上的源代码和库的顺序很重要。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7815791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档