본문 바로가기

Programing/Linux

[Linux]Ace 컴파일하기

참고 : http://blog.daum.net/ezway/23


Linux에서 Ace framework를 컴파일 하는 방법입니다.
ACE를 컴파일 하는 방법에는 두가지가 있습니다.

1. configure를  이용하는 방법
2. GNU Autoconf 를 이용하는 방법

두가지 방법을 다 설명드리니, 상황에 맞게 사용하시면 됩니다.

[다운로드 경로]
http://download.dre.vanderbilt.edu/ 

[다운로드 및 압축해제]
* 다운로드 경로나 ACE의 버전은 환경에 맞게 바꾸셔도 됩니다.
- 다운로드 경로 : /src
- ACE 버전 : ACE-6.0.3

#mkdir /src
#cd /src
#wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.tar.gz
#tar -xzvf ACE-6.0.3.tar.gz 

* 압축을 해제한 ACE framework의 경로는 /src/ACE_wrappers 입니다. 


[wchar(unicode) 또는 static library 지원하기 위한 설정]
1, 2번 컴파일 경우 둘다 적용됩니다.
1번에서는 ../configure를 하기전에
2번에서는 make를 하기전에 설정하시면 됩니다.

#cd 
/src/ACE_wrappers/ace 
#vi config.h 


config.h 파일을 만드시고, 아래 소스를 입력 후 저장하시면 됩니다.

// wchar(unicode)를 지원
#define ACE_HAS_UNICODE 1
#define ACE_HAS_WCHAR   1
#define ACE_USES_WCHAR  1

// static library를 지원
#define 
ACE_AS_STATIC_LIBS 1 

#include "ace/config-linux.h"

* static library로 빌드된 라이브러리를 링크할 때 추가 옵션
- 라이브러리 링크 : -ldl -lpthread
- Preprocesor Define : -DACE_AS_STATIC_LIBS 


[configure 옵션]
 

--prefix = 설치를 원하는 경로
--enable-debug : debugging 활성화
--enable-pthreads : POSIX thread(pthreadS) 지원 활성화
-- enable-uses-wchar : wide characters 사용 활성화
--enable-static : static library를 생성해준다.
* 자세한 옵션은 ../configure --help를 이용해 확인하시고, 추가하거나 빼시면 됩니다. 


1. configure를  이용하는 방법

#cd /src/ACE_wrappers
#mkdir build
#cd build
#../configure  --enable-debug --enable-pthreads --enable-uses-wchar --enable-static
 
or 64비트 컴파일

#../configure  --enable-debug --enable-pthreads --enable-uses-wchar --enable-static CC="gcc -m64 -fPIC" CXX="g++ -m64 -fPIC"
 

#make
#make install

이렇게 하시면 컴파일과 설치가 완료됩니다.
prefix 옵션을 안 주셧다면, 설치된 라이브러리 경로는 아래와 같습니다.
라이브러리 : /usr/local/lib
기본 Header : /usr/local/include 
추가 Header : /src/ACE_wrappers/ace
* 추가 Header 경로는 기본 Header경로에 없는 파일이 있을때 사용하시면 됩니다.

2. 
GNU Autoconf 를 이용하는 방법

prefix 옵션을 안 주셧다면, 설치된 라이브러리 경로는 아래와 같습니다.
2.1 환경변수 등록
ACE_ROOT와 LD_LIBRARY_PATH 두가지 환경변수를 설정해야 합니다. 

> bash의 경우 
#export ACE_ROOT=/src/ACE_wrappers
#export  LD_LIBRARY_PATH=${ACE_ROOT}/ace:${LD_LIBRARY_PATH}

> csh의 경우
%setenv ACE_ROOT /src/ACE_wrappers
%setenv LD_LIBRARY_PATH ${ACE_ROOT}/ace:${LD_LIBRARY_PATH}

2.2 ACE 설정파일 생성
두개의 설정파일을 생성해야 합니다.

#echo '#include "ace/config-linux.h" ' > $ACE_ROOT/ace/config.h
#echo 'include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU' > $ACE_ROOT/include/makeinclude/platform_macros.GNU

또는

#cd $ACE_ROOT/ace
#ln -s config-linux.h config.h
#cd $ACE_ROOT/include/makeinclude
#ln -s platform_linux.GNU platform_macros.GNU

#cd /src/ACE_wrappers/ace
#make
또는
#make static_libs=1       <-- static library 컴파일


이렇게 하시면 컴파일과 설치가 완료됩니다.
설치된 라이브러리 경로는 아래와 같습니다.
라이브러리 : /src/ACE_wrappers/lib
기본 Header : 
/src/ACE_wrappers/include 
추가 Header : /src/ACE_wrappers/ace
* 추가 Header 경로는 기본 Header경로에 없는 파일이 있을때 사용하시면 됩니다.