Linux

zeromq arm cross complie

behonestar 2017. 1. 10. 10:13

1. 다운로드

wget http://download.zeromq.org/zeromq-4.1.3.tar.gz

tar -zxvf zeromq-4.1.3.tar.gz


2. thread stack size 변경

: 메모리 점유율을 낮추려고 튜닝한 것이므로 생략 가능.

vi ./zeromq-4.1.3/src/thread.cpp

---------------------------------------

void zmq::thread_t::start (thread_fn *tfn_, void *arg_)

{

    tfn = tfn_;

    arg = arg_;


+    size_t stacksize;

+    pthread_attr_t p_attr;

+    pthread_attr_init(&p_attr);

+    stacksize = 1024 * 1024; //1024KB

+    if(!pthread_attr_setstacksize(&p_attr, stacksize))

+    {

        int rc = pthread_create (&descriptor, &p_attr, thread_routine, this);

        posix_assert (rc);

+    }

}


3. 라이브러리 설치할 디렉토리 생성

cd zeromq-4.1.3

mkdir ./build


4. Makefile 생성

./configure CC=arm-hisiv400-linux-gnueabi-gcc \

   AR=arm-hisiv400-linux-gnueabi-ar \

   RANLIB=arm-hisiv400-linux-gnueabi-ranlib \

   LD=arm-hisiv400-linux-gnueabi-ld \

   --host=arm-hisiv400-linux-gnueabi \

   --prefix=/data1/khb/etc/zeromq-4.1.3/build/ \

   --without-libsodium 


또는


./configure --host=arm-hisiv400-linux-gnueabi \

   --prefix=/data1/khb/etc/zeromq-4.1.3/build/ \

   --without-libsodium


5. 빌드

make

make install


6. 타겟 파일시스템에 복사 (libzmq)

cp -ra ./build/* /data1/khb/filesys_ncx3/usr


7. 타겟 파일시스템에 복사 (libstdc++)
: 타겟 파일리스템에 들어있던 libstdc++과 호환되지 않아서 컴파일러쪽의 libstdc++을 복사함

# 기존 라이브러리 제거

rm -f ~/filesys_ncx3/lib/libstdc*


# cross complier 디렉토리의 libstdc++ 라이브러리 복사

cp -a /home/opt/hisilicon/arm-hisiv400-linux/arm-hisiv400-linux/arm-hisiv400-linux-gnueabi/lib/libstdc*.so* \

   ~/filesys_ncx3/lib



libzmq 라이브러리 테스트

1. libzmq 사용하여 소켓을 열고 닫는 예제

zhelpers.h

server.c

client.c


2. 빌드

# arm-hisiv400-linux-gnueabi-gcc server.c -L/data1/khb/filesys_ncx3/lib -L/data1/khb/filesys_ncx3/usr/lib -lzmq -lstdc++ -I/data1/khb/filesys_ncx3/usr/include -o server

# arm-hisiv400-linux-gnueabi-gcc client.c -L/data1/khb/filesys_ncx3/lib -L/data1/khb/filesys_ncx3/usr/lib -lzmq -lstdc++ -I/data1/khb/filesys_ncx3/usr/include -o client


3. 실행

./server

./client


'Linux' 카테고리의 다른 글

sshd 디버깅 로그 보기  (0) 2017.07.05
openssl arm cross complie  (0) 2017.01.10
rabbitmq-c arm cross complie  (0) 2017.01.10
Ubuntu 16.04 Samba 설정  (1) 2016.06.14
Linux 계정만 생성하고 shell 로그인은 차단하기  (0) 2016.05.20