MinGW용 부스트 라이브러리(Boost Library)와 이클립스(Eclipse)
윈도우(Windows)에서 C++ 사용할 때 비주얼 스튜디오 Visual Studio C++ 이나
CDT 이클립스(Eclipse)를 보통 사용 하는데,
Visual Studio C++은 부스트 이용에 큰 불편함이 없는데, CDT 이클립스를 사용할 때는
링커에서 링크 하지 못해서 실행 파일이 생성 되지 않습니다.
부스트 라이브러리(Boost Library)가 설치된(Install) Include 폴더와 Lib 폴더를 지정 해줘도
계속 에러가 생겨서 해결을 못하고 있었던 차에 해결 방법을 알아내어서 해결 방법을 올려 봅니다.
MinGW 패스를 지정 하면서 기존 패스도 유지
Set Path=C:\Mingw\Bin;%PATH%
부스트 라이브러리가 아래에 있다면
C:\Build_Boost\boost_1_58_0\tools\build\src\engine
MinGW용 b2.exe bjam.exe 생성
C:\Build_Boost\boost_1_58_0\tools\build\src\engine\build.bat mingw
생성된 b2.exe와 bjam.exe Boost 루트 폴더로 복사
기존 Visual Studio용 b2.exe bjam.exe 있다면 백업하거나 다른 이름으로 변경
*** 컴파일 하기 ***
처음 설치시 헤더와 라이브러리를 생성 하기 위해서 install 옵션 사용
b2 tool-set=gcc --build-type=complete install -j 4
라이브러리만 생성 시킬때는 stage 옵션 사용
b2 tool-set=gcc --build-type=complete stage -j 4
부분 파일만 컴파일 한다면
b2 tool-set=gcc --build-type=complete --with-filesystem install -j 4
*** 이클립스에서 Boost Library 셋팅 하기 ***
이클립스에서 C++ 프로젝트(Exam_Boost_Rambda)를 만들고 C++ 파일 생성 아래 코드 복사
#include <iostream>
#include <boost/lambda/lambda.hpp>
#include <iterator>
using namespace std;
using namespace boost::lambda;
int main()
{
cout << "콘솔에 숫자입력 (종료시 z 입력)" << endl;
cout << "예제 : 1 2 3 입력하면 * 3을 한 결과 3 6 9 출력 " << endl;
typedef istream_iterator<int> in;
for_each(in(cin), in(), cout << (_1 * 3) << " ");
cout << endl;
return 0;
}
Exam_Boost_Rambda 프로젝트 - 속성에서
아래와 같이 개발 컴퓨터의 부스트 라이브러리가 설치 되어 있는 경로 수정.
*** 이클립스 셋팅중에서 제일 중요한 부분 ***
MinGW C++ Linker - Libraries(-i)에는 라이브러리의 접두사 lib를 빼고 파일 이름만 입력(확장자 불필요)
Library search path(-L) 에 부분에는 부스트 lib 폴더 입력, 컴파일 에러시 MinGW lib 폴더 추가 입력.
'C++' 카테고리의 다른 글
C++ 빌드 후 이벤트에서 파일을 복사 하지 못할때 :VCEnd (0) | 2015.06.09 |
---|---|
C++ 디버깅시 STL Code No Step Into 방지 하기 (0) | 2015.06.09 |
Visual Studio 2013 부스트 라이브러리(Boost Library) 컴파일(Compile) (0) | 2015.05.16 |
C++에서 MFC나 #import를 사용하지 않고 Excel을 자동화하는 방법 (0) | 2014.06.25 |