boost 라이브러리 쉽게 설치하기

2011. 6. 6. 10:01C++

boost 라이브러리는 http://www.boost.org/ 에서 받을 수 있습니다.
수동 설치 방법 : http://genkino.tistory.com/1446
 

하지만, 직접 컴파일 해야하는 귀찮음이 있죠. 여기 편히 설치할 수 있는 방법이 있습니다. 

 

1. Boost 라이브러리

    BoostPro 최신 버전을 받아 설치합니다.

    http://www.boostpro.com/download/



2. 환경 설정


Show directories for에서 Include files를 선택하고 boost 폴더를 마지막에 추가한다.



 

그리고 Show directories for에서 Library files를 선택하고 lib 폴더를 마지막에 추가한다.



Boost 라이브러리는 C++ 라이브러리 중에서 안정성과 성능, 라이선스의 자유로움등 여러 측면에서 개발자에게 도움이 되는 라이브러리다.
윈도우 응용에서 레지스트리에 각종 환경 정보 또는 프로그램 설정 정보를 저장하면 간단하지만,
환경 파일의 단순성이라는 장점을 바라보면서 개별 응용의 설정을 XML 파일에 저장하거나 예전의 INI 파일 형태로 저장하는 사례가 여전한데, Boost 라이브러리를 활용해서 이 문제에 대안을 찾아보고자 한다.
Boost 라이브러리에서 제공하는 여러 훌륭한 기능을 사용하고 싶지만 어떻게 하면 좋을지 갑갑한 이들을 위해 
라이브러리 설치와 사용, 그리고 XML 파일에 설정 정보를 저장하고 읽는 예제까지 간단하게 다루어 보고자 한다.
(참조문서 : http://www.boost.org/doc/libs/1_52_0/more/getting_started/windows.html)

  1. 비주얼스튜디오용 라이브러리 설치하기
  2. Boost를 이용한 간단한 예제
  3. XML 파일에 설정 정보 저장하고 읽기


* 비주얼스튜디오용 라이브러리 설치하기

라이브러리는 http://www.boost.org에서 다운로드 받아 적절하게 설정하여 사용할 수도 있지만, 설치 프로그램을 이용하면 좀더 간편하게 다운로드와 설치를 진행할 수 있다.

설치 프로그램을 http://boostpro.com/download/boost_1_51_setup.exe 에서 다운로드 받아 실행시킨다.

사용자 삽입 이미지

설치 프로그램에 대한 라이선스 동의하고

사용자 삽입 이미지

Boost 라이브러리에 대한 라이선스에도 동의한다.

사용자 삽입 이미지

다운로드에 사용할 사이트를 선택하는 화면인데, 프로그램이 추천한 곳으로해서 Next로 진행한다.

사용자 삽입 이미지
각자의 비주얼스튜디오 버전을 확인하여 선택하고 프로젝트 아키텍처에 맞는 라이브러리를 고르면 되는데 애매하면 Variants를 모두 선택하고 계속 진행한다.

사용자 삽입 이미지

Boost의 세부 라이브러리와 설치 항목을 선택한다.(기본사항으로 진행해도 무방)

사용자 삽입 이미지

설치 위치인데, 나중에 프로젝트에서 Include 폴더를 지정하거나 라이브러리 경로를 지정할때 사용하므로 잘 기억해 두고 Install로 설치를 진행한다.

사용자 삽입 이미지

선택한 항목에 따라 위의 그림과 같이 설치 프로그램이 다운로드와 설치를 자동 실행한다.


* Boost를 이용한 간단한 예제


Boost가 정상적으로 설치되었는지 예제 프로그램으로 확인하는 것으로 VS에서 새프로젝트>c++ win32 console응용으로 솔루션을 생성하고 이름을 sample로 지정한다.

사용자 삽입 이미지

sample.cpp파일을 열어서 자동 생성 코드 대신 아래의 코드를 입력한다.

#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>

int main()
{
    using namespace boost::lambda;
    typedef std::istream_iterator<int> in;

    std::for_each(
        in(std::cin), in(), std::cout << (_1 * 3) << " " );
}
빌드 및 실행 이전에 설정을 바꾸어 주어야 하는데 아래와 같다.
  • Properties > C/C++ > General > Additional Include Directories
    Boost 설치시의 설치 폴더 위치를 지정한다.
  • Properties > C/C++ > Precompiled Headers
    미리 컴파일된 헤더 사용 안 함으로 설정한다.;

사용자 삽입 이미지
프로그램은 여러개의 숫자를 입력받아 각각에 대하여 3을 곱한 값을 출력하는 간단한 내용으로 각 값 사이에 공백을 넣어주면 된다.


* XML 파일에 설정 정보 저장하고 읽기

앞서 언급한 바와 같이 설정 정보를 XML 파일에 저장하거나(사용자 데이터 폴더 %APPDATA%) XML 파일을 편리하게 다룰때 유용할 것 같다.

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <windows.h>

int main()
{
    TCHAR appdata[256];
    char xmlname[256], apppath[256];

    boost::property_tree::ptree pt;
    pt.put("conf.db","This is connection string!");
    pt.put("conf.svr","http://www.dongwun.com");
    ExpandEnvironmentStrings(TEXT("%APPDATA%"), appdata, sizeof(appdata));
    WideCharToMultiByte(CP_ACP, 0, appdata, sizeof(appdata), apppath, sizeof(apppath), NULL, NULL);

    sprintf(xmlname,"%s\\sample.xml",apppath);
    boost::property_tree::xml_parser::write_xml(xmlname, pt);

    boost::property_tree::ptree pt2;
    boost::property_tree::xml_parser::read_xml(xmlname, pt2);
    std::cout << pt2.get<std::string>("conf.db") << std::endl;
    std::cout << pt2.get<std::string>("conf.svr") << std::endl;
}

이 프로그램을 통해  생성된 XML 파일의 내용은 아래와 같다.
사용자 삽입 이미지