Ubuntu Software Center나 apt (Advanced Package Tool)에서 제공하는 Boost C++ library는 보통, 최신 version이 아니다.
Boost C++ library의 최신 version을 이용하고 싶다면, 이를
$HOME (home directory)에 설치해서 이용하면 된다.
그 방법은 다음과 같다.
1. Boost C++ website (
http://www.boost.org/)에서 최신 source code를 download.
자세히
1-1. Boost website에서 Download 선택.
1-2. CURRENT RELEASE의 Download를 click.
1-3. tar.gz로 끝나는 file을 선택.
1-4. 저장을 click해서 file을 받는다.
1-5. 받은 file을 확인.
2. 받은 file을 server로 upload.
자세히
3.
tar xvzf [download 받은 file 이름]
자세히
4.
cd [생성된 directory]
자세히
5.
./bootstrap.sh --prefix=[home directory의 path]
자세히
6.
./b2 install
자세히
제대로 설치가 됐는지 확인하려면, Boost C++ website에서 제공하는 test program을 compile & run 해보면 된다.
자세히
예를 들어, Boost.Regex library를 이용한 예제는 다음과 같다:
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main()
{
std::string line;
boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
}
Compile & run에서 조심할 건,
g++의 option에, header search path option (
-I)과 library search path option (
-L)을, Boost C++ library가 설치된 곳으로 설정해줘야 한다.
아까
$HOME에 설치했으니까,
g++의 flag들로
-I $HOME/include와
-L $HOME/lib을 써줘야 한다.
자세히
예를 들어, 위 test program들 중에서 Boost.Regex library를 이용한 program은 다음과 같이 compile해줘야 한다.
-l boost_regex는 link를 위한 library를 정해준 것.
그리고, Boost C++ library를 shared library로 link할 경우를 대비해서,
$LD_LIBRARY_PATH에
$HOME/lib을 추가해줘야 함.
자세히
Run 할 때마다
$LD_LIBRARY_PATH 환경변수를 export하는 게 귀찮으니까
$HOME/.bashrc에 export 구문을 적어 놓으면 편함.