#include <mxml.h>
#include <stdio.h>
void main()
{
FILE *fp;
mxml_node_t *tree;
mxml_node_t *node = NULL;
fp = fopen("1.xml", "r");
tree = mxmlLoadFile(NULL, fp, MXML_OPAQUE_CALLBACK);
node = tree;
fprintf(stderr, "Element::%s\n", mxmlGetElement(node));
fprintf(stderr, "Value::%s\n", mxmlGetText(node, 0));
}
上面是我的代码段...错误是
xmlparsing.c:在函数“ main”中:
xmlparsing.c:20:2:警告:格式“%s”期望的类型为“ char *”,但是参数3的类型为“ int” [-Wformat]
xmlparsing.c:21:2:警告:格式“%s”期望参数为“ char *”类型,但参数3的类型为“ int” [-Wformat]
/tmp/ccAYsMOB.o:在函数“ main”中:
xmlparsing.c :(。text + 0x58):对'mxmlGetElement'的未定义引用
xmlparsing.c :(。text + 0x8c):对'mxmlGetText'的未定义引用
collect2:ld返回1退出状态
比为什么已经包含了mxml.h未定义引用?我在Internet上搜索了此功能,链接显示该文件位于mxml.h头文件中。
最佳答案
您的问题出在您的链接器上,请参阅最后一条消息:
collect2: ld returned 1 exit status
您需要通知
gcc
(这是对编译器和链接器的调用,其中包括include路径和库路径。包含路径是找到
mxml.h
的位置,可通过以下方法完成:-I<path/to/include/mxml.h>
库路径给出:
-L<path/to/shared/libmxml.a>
因此,您总共应该具有:
gcc yourfile.c -I <path/to/include/mxml.h> -L <path/to/shared/libmxml.a>
您可以根据需要包括其他路径。
关于c - 无法在mxml中使用mxmlGetText和mxmlGetElemet,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24286265/