c make libxml2和mqttlib交叉编译

Posted skycandy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c make libxml2和mqttlib交叉编译相关的知识,希望对你有一定的参考价值。

libxml2:

源码:ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz

export PATH=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/:$PATH

./configure  --prefix=/opt/libxml2armchangyang/ CC=arm-fsl-linux-gnueabi-gcc CXX=arm-fsl-linux-gnueabi-g++ AS=arm-fsl-linux-gnueabi-as RANLIB=arm-fsl-linux-gnueabi-ranlib  --without-zlib  --without-python 

提示 ./libtool中arm-fsl-linux-gnueabi-gcc 不可用

改为

./configure  --prefix=/opt/libxml2armchangyang/ CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc CXX=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-g++ AS=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-as RANLIB=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-ranlib  --without-zlib  --without-python 

提示需要输入--host

改为:

sudo ./configure --host=arm-fsl-linux --prefix=/opt/libxml2armchangyang/ CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc CXX=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-g++ AS=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-as RANLIB=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-ranlib --without-zlib --without-python

成功执行

继续

sudo make CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc CXX=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-g++ AS=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-as RANLIB=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-ranlib

sudo make install

之后去 /opt/libxml2armchangyang/lib 文件夹下找需要的.a文件

生成编译文件只能用于基础的开发 不支持python 和zip的压缩开发 所有需要将所有的包多编译后再进行编译

 

mosquitto

源码 https://mosquitto.org/files/source/

版本 mosquitto-1.4.15.tar.gz

修改config.mk

WITH_TLS:=no

WITH_TLS_PSK:=no

WITH_THREADING:=yes

WITH_BRIDGE:=yes

WITH_PERSISTENCE:=yes

WITH_MEMORY_TRACKING:=yes

 

WITH_SYS_TREE:=yes

WITH_SRV:=no

WITH_UUID:=no

WITH_WEBSOCKETS:=no

WITH_EC:=yes

WITH_DOCS:=no

WITH_SOCKS:=yes

再执行

export PATH=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/:$PATH

make CC=arm-fsl-linux-gnueabi-gcc CXX=arm-fsl-linux-gnueabi-g++ AS=arm-fsl-linux-gnueabi-as RANLIB=arm-fsl-linux-gnueabi-ranlib  

sudo make intall

再到lib文件夹下找需要的包

该编译版本去掉了很多乱七八糟的其他复杂功能 ,如果需要,酌情修改config.mk,将那些no的改会yes。

 

以上是关于c make libxml2和mqttlib交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

使用GNU make,嵌入式C进行本机和交叉编译

ARM交叉编译PHP

libxml2 移植 arm9

我可以将AS3代码或Flex项目交叉编译为本机C ++吗?

Make-File:将多个 SRC 文件夹编译为单个 OBJ 文件夹

装php中,无法安装libxml2,怎么解