libxml2交查编译 arm64

  1. libxml2 github访问网站
    libxml2 release包下载
  2. 这下载的版本为:libxml2-2.7.7.tar.xz
  3. tar -xvf libxml2-2.7.7.tar.xz
  4. cd libxml2-2.7.7
  5. libxml2交叉编译:mkdir libxml2_arm64
    ./configure CROSS_COMPILE=arm-linux CC=/home/forlinx/Templates/project/public/Tool/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc --host=arm-linux --with-python=no --with-zlib=no --prefix=/home/forlinx/Templates/project/public/3rd_party/libxml2-2.7.7/libxml2_arm64/
    make
    make install
    objdump -a libxml2_arm64/lib/libxml2.a 查看库的属性
  6. example创建一个xml文件

/********************************************************************

    created:   2007/11/09

    created:   9:11:2007   15:34

    filename: CreateXmlFile.cpp

    author:       Wang xuebin

    depend:       libxml2.lib

    build:     nmake TARGET_NAME=CreateXmlFile

    purpose:   创建一个xml文件

*********************************************************************/

#include <stdio.h>

#include <libxml/parser.h>

#include <libxml/tree.h>

#include <iostream>

using namespace std;

int main()

{

    //定义文档和节点指针

    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"));

    //存储xml文档

    int nRel = xmlSaveFile("CreatedXml.xml",doc);

    if (nRel != -1)

    {

       cout<<"一个xml文档被创建,写入"<<nRel<<"个字节"<<endl;

    }

    //释放文档内节点动态申请的内存

    xmlFreeDoc(doc);

    return 1;

}

  1. cmak使用方法:
cmake_minimum_required(VERSION 3.2.2)
project(libxml2)

aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SRC)     #查找.目录下的所有.c或.cpp文件

include_directories(${CMAKE_CURRENT_SOURCE_DIR}
				./libxml2_arm64/include/libxml2
)

# 添加库的搜索路径
link_directories(
    ./libxml2_arm64/lib
)

foreach(_target
        CreateXmlFile parse_xml
  )
  add_executable(${_target} "${_target}.cpp")
  target_link_libraries(${_target}
                        -lxml2
                        -lpthread
                        )
endforeach()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值