消息中间件和网络通信平台zmq相信大家都听说了,本文主要介绍zmq在arm 和mips 平台下是移植和使用情况。
CSM1201板子上可以使用的libzmq.so,以下是的编译过程
第一步:编译libuuid.a
编译成成libuuid.a的过程
这里找到了libuuid.a
在编译的过程中,我发现了很多问题,因为在编译ZeroMQ的库时,是需要uuid-dev的,所以还必须编译libuuid
在编译libuuid的过程中,我发现自己太不细心了,因为在创建libuuid库的时候,需要产生一个创建硬链接的操作,
而硬链接和软连接是不一样的,硬连接是指,在文件系统中本来就存在的一个文件,然后创建硬链接的操作相当于在内存中创建了一个到此文件的连接指针
所以将所有的文件拷贝到/home/xianlong目录中去,结果在sudo make 就可以了。
export PATH=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/bin:$PATH
./configure --enable-elf-shlibs --host=arm-linux cc=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/arm-linux-gcc --with-linker=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/arm-linux-ld --prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux AR=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/arm-linux-ar
sudo make
cd /lib/uuid
make install
第二步:编译libzmq
先使用命令
xianlong@ubuntu-hw-csm120x:/mnt/hgfs/tmplinuxfile/zeromq-2.1.7$ ./configure --host=arm-linux LDFLAGS=-L/home/xianlong/e2fsprogs-1.41.14/lib/ CC=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/arm-linux-gcc
然后make
你会发现出现以下错误
In file included from socket_base.cpp:50:
uuid.hpp:31:23: uuid/uuid.h: No such file or directory
In file included from socket_base.cpp:50:
uuid.hpp:92: error: using-declaration for non-member at class scope
uuid.hpp:92: error: expected `;' before "uuid"
make[2]: *** [libzmq_la-socket_base.lo] Error 1
make[2]: Leaving directory `/mnt/hgfs/tmplinuxfile/zeromq-2.1.7/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/mnt/hgfs/tmplinuxfile/zeromq-2.1.7/src'
make: *** [all-recursive] Error 1
这个地方与./configure的配置命令相关
遇到错误后,你可以将uuid.h拷贝到/mnt/hgfs/tmplinuxfile/zeromq-2.1.7/include$目录中
然后修改uuid.hpp以及uuid.h中的包含路径,这样就可以顺利编译通过了
最终编译的libzmq.so在/mnt/hgfs/tmplinuxfile/zeromq-2.1.7/src/.libs$
中
我会继续测试通过交叉编译的libzmq.so是否可以用于嵌入式播放机中,通过写简单的通信程序,如果能运行,那就说明是可以动手开始修改的
MIPS架构下的libzmq.so的编译过程
先编译基于MIPS的libuuid
mkdir -p /home/smp2/e2fsprogs-1.41.14/opt/uuiddirectory/
./configure --host=mipsel-linux --target=mipsel-linux --prefix=/home/smp2/e2fsprogs-1.41.14/opt/uuiddirectory/ CC=/home/smp2/mips-4.3/bin/mips-linux-gcc
cd /lib/uuid
make
sudo make install
第二步:编译libzmq
cd /mnt/hgfs/tmplinuxfile/zeromq-2.1.7
./configure --host=mipsel-linux LDFLAGS=-L/home/smp2/e2fsprogs-1.41.14/lib/uuid/ CC=/home/smp2/mips-4.3