安装步骤:
平台:ubuntu ,
交叉编译工具:aarch64-linux-gnu-gcc
libxml版本:libxml2-2.9.4
下载地址:https://blog.csdn.net/c1194758555/article/details/73888960
解压:tar -xf libxml2-2.9.4.tar.gz
进入到解压目录下:cd libxml2-2.9.4
建立安装文件:mkdir build
配置参数:./configure --host=aarch64-linux-gnu --enable-static --target=arm --prefix=/home/forlinx/3568/libxml2/libxml2-2.9.4/build/ --without-zlib --without-python
配置解释:
--host=
aarch64-linux-gnu:指定主机架构为 ARM Linux。
--target=arm
:指定目标架构为 ARM。
--prefix=
/home/forlinx/3568/libxml2/libxml2-2.9.4/build/ :指定编译输出的库和工具的安装路径前缀为 /usr/local/arm/libxml_arm
。
--without-zlib
:编译过程中不包含 zlib 库。
--without-python
:编译过程中不包含 Python 库
编译:make && make install
编译完成后进入到安装路径下将以下文件复制到自己代码文件夹下面(include文件夹,lib文件夹)。
测试代码目录:
测试代码:
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xmlversion.h>
int main()
{
xmlChar* result = NULL;
int size = 0;
xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0"); //定义文档和节点指针
xmlNodePtr root_node = xmlNewNode(NULL, BAD_CAST "root");
xmlDocSetRootElement(doc, root_node); //设置根节点
//在根节点中直接创建节点
xmlNewTextChild(root_node, NULL, BAD_CAST "newNode1", BAD_CAST "newNode1 content");
xmlNewTextChild(root_node, NULL, BAD_CAST "newNode2", BAD_CAST "newNode2 content");
xmlNewTextChild(root_node, NULL, BAD_CAST "newNode3", BAD_CAST "newNode3 content");
//创建一个节点,设置其内容和属性,然后加入根结点
xmlNodePtr node = xmlNewNode(NULL, BAD_CAST "node2");
xmlNodePtr content = xmlNewText(BAD_CAST "NODE CONTENT");
xmlAddChild(root_node, node);
xmlAddChild(node, content);
xmlNewProp(node, BAD_CAST "attribute", BAD_CAST "yes");
//创建一个儿子和孙子节点
node = xmlNewNode(NULL, BAD_CAST "son");
xmlAddChild(root_node, node);
xmlNodePtr grandson = xmlNewNode(NULL, BAD_CAST "grandson");
xmlAddChild(node, grandson);
//xmlAddChild(grandson, xmlNewText(BAD_CAST "This is a grandson node"));
xmlNodePtr congson = xmlNewNode(NULL, BAD_CAST "congson");
xmlAddChild(grandson, congson);
//存储xml文档
//xmlKeepBlanksDefault(0);
//xmlDocDumpFormatMemoryEnc(doc, &result, &size, "UTF-8", 1);
int nRel = xmlSaveFile("test.xml", doc);
if (nRel != -1)
{
printf("一个xml文档被创建,写入%d个字节\n", nRel);
}
//释放文档内节点动态申请的内存
xmlFreeDoc(doc);
return 1;
}
打包命令:aarch64-linux-gnu-gcc createxml.c -o createxml -I ./include/ -L./ -lxml2
打包后,将createxml可执行文件复制到开发板上面,添加权限(chmod a+x createxml),运行程序(./createxml)