2010년 4월 29일 목요일

boost build





설치방법을 찬찬히 읽어 보면 답이 보인다.
우선 아주 쉬운 방법인 ./configure를 이용하는 방법인다.

밉스나 암을 쓰기 위해서는 사용자 정의 빌드 방법을 이용해야 한다.

vi tools/build/vc/user-config.jam 파일을 연후


GCC configuration 아래에

using gcc : 3.3.4 : /usr/local/arm/3.3.4/bin/arm-linux-g++ ; ==> arm
using gcc : 3.4.4 : mipsel-linu-g++;

추가 한다.

boost root 폴더에 bjam파일이 없다면

tools/jam/src/build.sh를 실행한후 bin.linuxx86 폴더에 가서 bjam를 boost root 폴더에 복사한다.


ex)./bjam --toolset=gcc stage

./bjam --help

자세한 내용은 http://phoebe-yj.blogspot.com/2009/10/c-boost-c.html

C++ 개발자라면 한 번은 사용한다는 Boost는 C++ 표준 위원회 사람들이 대거 참여하여 개발되고 있는 라이브러리이다. C++의 추가 표준 라이브러리인 TR1도 이 라이브러리를 기반으로 만들어졌다.
Boost의 라이브러리 중에는 헤더파일만을 사용하는 것도 있지만, 사용하기 전에 build를 해주어야 하는 라이브러리들이 있다. Boost에서 zlib를 사용하기 위해서는 이 과정을 거쳐야 한다.
Boost는 bjam이라는 자체적인 build module을 이용하여 라이브러리를 build 한다. 따라서 Boost를 설치하고 사용하기 위해서는 bjam이 있어야 하고, build 옵션을 알아두면 된다.
(http://www.boost.org/) URL에서 Boost의 최신 패키지를 받을 수 있다.
Boost를 build하기 전에 bjam 프로그램이 필요하므로 다음과 같은 방법으로 bjam.exe 파일을 생성한다.

1. Boost의 하위 폴더인 .\tools\jam 폴더로 이동한다.
2. build_dist.bat을 실행한다. (build)
3. 빌드 완료 후, 생성된 stage의 하위 폴더 bin.ntx86로 이동을 하면 bjam.exe 파일이 생성되어 있는 것을 확인할 수 있다.
[표 1] Boost의 build module인 bjam.exe 생성하는 방법


생성된 bjam.exe 파일을 통해 Boost를 build하기 위해 Boost의 최상위 폴더로 복사한다.
Boost의 build 방식에는 크게 두 가지로 구분할 수 있다. install 방식과 stage 방식이다. install의 경우에는 헤더파일과 컴파일된 라이브러리 파일을 아예 새로운 폴더에 생성하는 방식이고, stage의 경우에는 현재 boost 폴더에 있는 헤더 파일을 그대로 이용하고 컴파일된 라이브러리 파일만을 생성하는 것이다.

Ÿ install의 경우
bjam.exe –prefix=”C:\Lib\Boost” install
Ÿ stage의 경우
bjam.exe –stagedir=”.\stage” stage
[표 2] install과 stage 옵션 설정 명령어 예


다음으로 알아볼 것은 build-type 옵션이다.
build-type에는 minimal과 complete 옵션을 사용할 수 있다. 그리고 추가적으로 release와 debug 옵션을 줄 수 있다.

bjam.exe –build-type=complete release debug install
bjam.exe –build-type=complete release stage
bjam.exe release debug stage
[표 3] build-type 옵션 설정 예제


-tooset 옵션의 경우에는 Visual C++을 이용하기 때문에 msvc로 설정한다.
마지막으로 가장 중요한 iostream 라이브러리에서 사용하는 외부 라이브러리 build 이다. 이미지 압축을 위해 사용할 zlib를 다운로드(http://www.zlib.net/)하고 다음과 같이 설정한 후 build를 수행한다.

1. 다운로드 받은 라이브러리를 적당한 경로에 압축을 풀고, 해당 경로를 환경변수로 설정한다.
set ZLIB_SOURCE=”C:\Lib\zlib”
2. Boost를 build 한다.
[표 4] zlib 빌드 옵션 예


Boost의 build가 끝나면 Visual studio 2008에서 다음과 같이 boost의 헤더파일과 라이브러리를 추가하면 프로젝트에서 Boost 라이브러리를 사용할 수 있다

ace mipsel-linux



-시작-


이전 버전에 썼던 방식을 잘 안된다. 아니 잘못 알고 컴파일 한것임..


지대로 알고 하자


우선
Using the Traditional ACE/GNU Configuration 방법으로 한다.

찬찬히 읽으면 답이 보인다.

위에서 말한 방법대로 platform_macros.GNU를 만들고

파일 안에다

CROSS-COMPOLE=1
debug=0
optimize=2
CC=mipsel-linux-gcc (little endian version of mipse)
CXX=mipsel-linux-g++
no_hidden_visibility=1

추가한다.

그리고

export ACE_ROOT
export LD_LIBRARY_PATH=$ACE_ROOT/lib

그리고

인스톨 방법대로

ACE_ROOT/ace에서 make를 한다.


그런데

EPOLLONESHOT 를 찾을수 없다고 한다.

그래서

config.h에서 #define ACE_USE_POLL 0으로 했는데 안된다
기본으로 ACE_HAS_EVENT_POLL를 정의하는지

그래서

#include "ace/config-linux.h"
밑에

#undef ACE_HAS_EVENT_POLL를 정의해서 아에 그쪽으로 진입을 못하게 했다.

컴파일은 됏지만 실행이 잘 될지 모르겠다.


2009년 10월 27일 (화) 01:58

EZ-AU1200 에 ACE-5.7.4 Porting 하기



platform_macros.GNU contents

CROSS-COMPILE=1
debug=0
optimize=2
CC=mipsel-linux-gcc
CXX=mipsel-linux-g++
no_hidden_visibility=1

include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU


ACE_Wrappers/ace/config.h contents
#include "ace/config-linux.h"
#undef ACE_HAS_EVENT_POLL

boost mipsel-linux

Download latest release bjam
./build.sh

Download latest release boost

vi tools/build/vc/user-config.jam
using gcc : mipsel : mipsel-linux-g++ ;

./bjam toolset=gcc-mipsel --prefix=/home/bcc/xxxx --stagedir=/home/bcc/xxx stage

의외로 간단하다.

openssl mipsel-linux

search openssl mipsel-linux
http://www.networkedmediatank.com/wiki/index.php/Openvpn
http://cblfs.cross-lfs.org/index.php/OpenSSL // 추천

required patch(MIPS) 다운로드, 웹에서 띄우니까 복사해서 저장할것

little-endian이므로

아래 명령을 실행 하기 전에
patch 파일에서
mipsel에 해당 하는 gcc 를 mipsel-linux-gcc로 변경 후 makefile를 생성 해야 한다.

patch -Np1 -i ../openssl-0.9.8k-mips_support-1.patch &&
./Configure linux-mipsel --openssldir=/etc/ssl --prefix=/usr shared

참고 --prefix의 디렉토리에 저장될 폴더는 bin, include, lib이다.
--prefix=/etc/ssl로 같이 해도 좋다.


make
make install


AU-1200 Mipsel 보드 포팅

AU-1200 검색 해서 mipsel-toochain-3.4.4.tar.gz받는다.

sudo tar xvf mipse-toolchain-3.4.4.tar.gz -C /

압축 풀면 끝