반응형

C++ Boost 라이브러리 설치 및 Visual studio 설정 (윈도우용)

 

boost 라이브러리를 설치하고, Visual studio에서 이 라이브러리를 적용해 빌드하는 것을 다루어 보겠습니다. 

 

1. boost 라이브러리 다운로드

우선 아래 링크에 접속합니다.

https://www.boost.org/

 

Boost C++ Libraries

Welcome to Boost.org! Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications

www.boost.org

접속해서 최신 Release 버전을 클릭하여 아래 페이지가 나오면, windows 용 압축파일을 다운로드 합니다.

압축파일의 용량은 100MB 조금 되지 않습니다.

2. boost 라이브러리 설치 및 빌드

다운로드가 끝났으면, 압축을 풀고 bootstrap.bat을 실행시킵니다. 

실행을 시키면 아래와 같이 코드를 생성하고 컴파일을 합니다. 

 

위 과정이 끝나면 b2.exe 파일이 생성됩니다. 

이 파일을 실행하여 boost 라이브러리를 빌드합니다. 

빌드되는데 시간이 조금 오래 걸립니다. 

빌드가 완료되면  include 디렉토리와 lib 디렉토리가 출력됩니다 .

- include : E:\Project_Cplus\boost_1_80_0\boost_1_80_0

- lib : E:\Project_Cplus\boost_1_80_0\boost_1_80_0\stage\lib

3. Visual Studio에서 boost 라이브러리 적용

생성된 프로젝트에서 속성창을 open합니다

아래 2 경로를 설정해야 합니다. 

- include : E:\Project_Cplus\boost_1_80_0\boost_1_80_0

- lib : E:\Project_Cplus\boost_1_80_0\boost_1_80_0\stage\lib

 

먼저 include는 C/C++ 일반의 '추가 포함 디렉터리'에서 추가합니다. 

lib는 링커의 일반에서 '추가 라이브러리 디렉터리'를 설정하여 줍니다. 

 

4. boost 라이브러리를 이용한 sample 프로그램 빌드 및 실행

Thread를 사용하는 간단한 프로그램을 작성하여 빌드해봅니다. 

#include <stdio.h>
#include <iostream>
#include <crtdbg.h>

#include <boost/asio/thread_pool.hpp>
#include <boost/asio/post.hpp>

using namespace std;
using namespace this_thread;
using namespace chrono;


void threadTest()
{
    // 반복문을 돌면서 콘솔에 값을 출력한다.
    for (int i = 0; i < 4; i++)
    {
        cout << i << endl;
        sleep_for(microseconds(1));
    }
}

int main()
{
    boost::asio::thread_pool* pool = new boost::asio::thread_pool(1);
    /* 쓰레드 실행 */
    post(*pool, threadTest);
    post(*pool, threadTest);
    post(*pool, threadTest);

    
    pool->join(); // pool 내의 모든 쓰레드가 종료할 때까지 기다린다.
    delete pool; // 메모리 해제
    _CrtDumpMemoryLeaks(); // 메모리 릭체크 함수.
    return 0;
}

그러면 아래와 같이 빌드되고, 실행되는 것을 볼 수 있습니다.

반응형
반응형

 

[Boost] boost 설치 및 visual studio에 설정하여 hello world 출력 - 윈도우 용

 

 

Boost 라이브러리란

Boost는 C++ 프로그래밍 언어를 위한 선형대수, 의사 난수 발생, 멀티스레딩, 영상 처리, 정규 표현식, 그리고 유닛 테스트와 같은 작업들과 구조들을 지원하는 라이브러리들의 집합입니다. Boost 라이브러리는 무료이며, Smart Pointer , Regular Expression, Thread - Mutex 등등 직접적으로 구현하고 안정화 시키기에 오랜 시간을 필요로하는 것을 알고리즘으로 한데 묶어놓아 개발자들이 사용하기 편하도록 API를 제공해줍니다.

 

0. Visual Studio 다운로드

Visual Studio IDE는 아래 경로에서 다운로드할 수 있습니다.

 

https://visualstudio.microsoft.com/ko/free-developer-offers/

 

무료 개발자 소프트웨어 및 서비스 - Visual Studio

무료 제공: Visual Studio Community, Visual Studio Code, VSTS 및 Dev Essentials.

visualstudio.microsoft.com

 

1. Boost 라이브러리 다운로드

아래 링크에 들어가서 윈도우 용 설치파일을 다운로드합니다. 

2022년 3월 9일 기준으로 최신버전은 1.78.0 버전입니다. 

압축파일 용량은 183MB 정도입니다. 

 

https://www.boost.org/users/download/

 

Boost Downloads

Current Release Version 1.78.0 December 8th, 2021 03:45 GMT Updated Libraries: Asio, Assert, Atomic, Beast, Core, Describe, DLL, Filesystem, Geometry, JSON, Lambda2, Log, Math, MultiIndex, Multiprecision, PFR, Predef, Regex, System, Utility, Variant2. Down

www.boost.org

2. Boost 라이브러리 압축 풀기 및 bootstrap.bat 파일 실행(빌드)

압축을 풀면 아래와 같이 파일이 생성됩니다. 

그 중에 bootstrap.bat 파일을 실행시킵니다.

추가 정보를 눌러 실행합니다.

실행하면 visual studio 폴더를 찾고, 빌드가 시작됩니다. 

한 몇분 지나면 완료되고 cmd 창이 자동으로 종료됩니다.

아래와 같이 b2.exe 파일이 생성된 것을 확인할 수 있습니다.

3. b2.exe 파일 실행하기 (boost 라이브러리 빌드)

b2.exe 파일을 실행시키면 boost 라이브러리 빌드를 시작합니다. 

시간이 좀 오래 걸립니다. 

빌드가 완료되면 cmd 창이 자동으로 종료되고, 아래와 같이 폴더 2개가 생성됩니다.

이제 boost 라이브러리는 준비되었고, Visual Studio에서 Boost 라이브러리를 사용해보도록 하겠습니다.

 

4. Visual Studio에서 새로운 프로젝트 생성 및 boost 라이브러리 추가하기

콘솔 앱으로 프로젝트를 생성해서, 간단하게 boost 라이브러리를 불러왔을 때, 에러없이 빌드가 되는지 확인해보겠습니다.

 

프로젝트가 생성되었으면, 이제 boost 라이브러리를 가져오도록 하겠습니다. 

그럼 프로젝트 > 속성에 들어갑니다. 

속성 페이지에서 2가지를 추가해야 합니다. 

1) include 경로

2) lib 경로

 

 

 

1) include 경로 추가

속성 페이지 > C/C++ > 일반 > 추가 포함 디렉터리에서 boost 경로를 추가해줍니다.

 

2) lib 경로

속성 페이지 > 링커 > 일반 > 추가 라이브러리 디렉터리에서 boost 라이브러리의 경로를 추가해줍니다.

1), 2)를 추가하였으면 적용을 누르고 확인 버트을 누릅니다.

5. boost 라이브러리 추가하고 빌드하기

이제 boost 라이브러리를 사용할 수 있습니다. 

include로 boost/ 를 입력해보면 아래와 같이 사용할 수 있는 라이브러리 header 파일이 자동으로 출력됩니다.

아래와 같이 boost의 lambda api를 사용해보도록 하겠습니다.

아래와 같이 코드를 작성하고 컴파일하면 컴파일 성공된 것을 볼 수 있습니다.

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

int main()
{
    typedef std::istream_iterator<int> in;

    std::cout << "Hello Boost!" << std::endl;

    std::cout << "Type in any number: ";

    std::for_each(
        in(std::cin), in(), std::cout
        << (boost::lambda::_1 * 10)
        << "\nType in another number: ");
}

컴파일이 성공되고, boost의 lambda를 사용한 출력물을 확인할 수 있습니다.

반응형

+ Recent posts