CentOS 6 x86里交叉编译libxml2

因为工作中需要用到arm交叉编译,飞凌提供的是在Ubuntu12x86里用,但我不喜欢Ubuntu,太耗资源,所以打算在CentOS里使用,为了在Linux里也能调试程序(因为arm还是32位的),所以我安装CentOS 6 x86系统,还能更节省内存。
首先在vmware里安装CentOS后安装好界面,安装vmware-tools。
安装gcc和make:yum install -y gcc gcc-c++ make
然后解压缩freescale.tar.gz到/opt/freescale中。
因为项目里用到libxml2,需要交叉编译该库:

下载解压后进入到Libxml2目录中,执行命令:

./configure --prefix=/opt/freescale/libxml2 --host=arm-fsl-linux-gnueabi CC=/opt/freescale/bin/arm-fsl-linux-gnueabi-gcc CXX=/opt/freescale/bin/arm-fsl-linux-gnueabi-g++

发现错误:
/bin/rm: cannot remove `libtoolT’: No such file or directory

百度后发现要注释掉:# R M " RM " RM"cfgfile"(加#)。
再次运行后就可以make && make install了。

编译程序时的Makefile样例如下:

CC       = arm-linux-g++ 
LD       = arm-linux-g++
CFLAGS  := -W -c -fPIC -g -Wall
SRC      = .
INC      = .
INCLUDES = -I/opt/freescale/libxml2/include/libxml2
LDFLAGS  = -L/opt/freescale/libxml2/lib
LIBS     = -lxml2

all: libxxx.so test

objects = xxx.o xxxxx.o

# xml2库在设备中使用的版本为2.7.8,下载网址: http://xmlsoft.org/sources/
libxxx.so: $(objects)
	$(LD) $(LDFLAGS) $(LIBS) -fPIC -shared -o $@ $^

%.o: %.cpp
	$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^

test: test.o
	$(LD) -L./ -lxxx -lxml2 -Wl,-rpath=./ -Wl,-rpath=../xxx -o $@ $^

.PHONY : clean	
clean:
	rm -f *.o	
	rm -f *.so	
	rm -f test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值