윈도우에서 GCC 를 사용하고자 하는 경우 MinGW 를 사용하거나 Cygwin 을 설치하거나 또는 Virtual box 에 리눅스를 설치해서 사용할 수 있다.

 

아래 포스팅에서 TDM-GCC 설치 방법에 대해 소개한 적이 있는데~

  

2013/06/06 - [유틸] - MinGW 64bits 설치


오늘은 MinGW 뿐만 아니라 boost 라이브러리를 사용하고 싶었다.

 

현재 내 PC 환경은 윈도우 7 64비트이다.

 

찾아보니 아래 주소의 MinGW Distro 가 나왔고, x64-native, GCC 4.8.2, Boost 1.55.0 라는 특징을 가지고 있었다.

 

http://nuwen.net/mingw.html

 

또한 C++11 을 default 로 설정해 놓았다고 한다.

 

위 주소에 들어가서 아래 그림의 링크를 클릭해서 다운로드 받는다. 위에 링크된 mingw-11.6.exe 은 git 이 없는 버전이고

 

아래에 있는 mingw-11.6-without-git.exe 은 말 그대로 git 은 빠진 버전이다.

 

나는 git 은 따로 설치를 했었기에 아래에 있는 mingw-11.6-without-git.exe 를 다운로드 받았다.

 

설치는 굉장히 간단한데~ 다운로드 받은 mingw-11.6-without-git.exe 파일을 더블 클릭하고 아래 그림과 같이 path 를 잡아 주면 된다.

 

위 그림과 같이 최상위 폴더를 잡아주면 C:\ 하위에 MinGW 라는 폴더가 생긴다. 그래서 나는 C:\MinGW 에 설치했다.

 

윈도우에서 Codeblocks IDE 에서 boost library 를 사용하여 소문자를 대문자로 변환해 보았다.

 

소문자를 대문자로 변환하는 과정에서 아래 주소에서 확인한 boost 라이브러리의 to_upper() 함수를 사용했다.

 

http://stackoverflow.com/questions/735204/convert-a-string-in-c-to-upper-case

 

Codeblock 셋팅시에 Compiler 를 다음과 같이 방금 설치한 MinGW Distro 에 맞게 설정 해준다.

 

Compiler 의 search directory 역시 아래 그림과 같이 mingw 의 include path(C:\MinGW\include)를 추가해준다.

 

아래와 같이 코딩하고~

 

#include <iostream>

#include <boost\algorithm\string.hpp>

#include <string>

 

using namespace std;

 

int main()

{

 

string str = "Hello World";

 

string newstr = boost::to_upper_copy<string>(str); // 대문자로 변경후 새로운 변수에 저장

 

cout << "before upper : " << str << ",\t to upper : " << newstr << endl;

 

boost::to_upper(str); // // 대문자로 변경후 현재 변수에 저장

 

cout << "Str to upper : " << str << endl;

 

return 0;

}

 

F9 를 눌러서 Build And Run 을 수행해 보면 다음과 같이 정상적으로 동작 한다.



저는 C/C++ 을 주로 수치연상 용도로 사용하다 보니 코딩을 하면서 Matrix 나 Vector 연산을 많이 하게 되는데요~

 

이런 선형대수 관련 라이브러리들을 찾아보니 아래 주소의 글이 나오더군요.

 

아래 주소의 글은 linear algebra 라이브러리들의 특징을 비교해 놓은 페이지 인데요~

 

http://en.wikipedia.org/wiki/Comparison_of_linear_algebra_libraries

 

예전에 알고 있었던 BLAS, GSL(GNU Scientific Library), LAPACK 뿐만 아니라 최근에는 Armadillo를 많이들 사용하는 것 같더군요.

 

C++ 로 구성되어 있고~ 비교적 가장 최근에 나와서 사용하기도 편리할 것 같아서 한번 설치해 봤습니다.

 

현재 제 컴퓨터 환경은 Linux Mint 이고~ Armadillo의 공식 홈페이지는 다음과 같습니다.

 

http://arma.sourceforge.net/

 

아래 주소에서 가장 최신의 버전을 다운로드 받았습니다.

 

http://arma.sourceforge.net/download.html

 

현재의 가장 최신 버전은 armadillo-3.920.3.tar.gz 이더군요.

 

다운로드 받고 압축을 푼 후에 README.txt 파일을 확인해 보니 설치 방법이 나와 있더군요.

 

Armadillo설치는 위해서 cmake 가 일단 있어야 하고~~

 

BLAS, LAPACK, Boost, ATLAS 라이브러리가 미리 설치하길 추천하더군요.

 

그래서 다음과 같이 해당 툴과 라이브러리들을 설치 했습니다.

 

sudo apt-get install cmake libblas-dev liblapack-dev libboost-dev  libatlas-dev   -y

 

다음으로 터미널에서 Armadillo를 압축 해제한 폴더로 이동해서~ README.txt 에 있는데로 아래 명령을 순서대로 타이핑했습니다. 쉽게 쉽게 깔리더군요.

 

cmake .

make

sudo make install

 

이제 Codeblocks IDE 를 열어서~ 아래 주소의 예제 코드를 이용해서 프로젝트를 만든 다음에~

 

http://arma.sourceforge.net/docs.html#example_prog

 

 

Build option 에 들어가서 다음과 같이 armadillo라고 library link 를 정했습니다.

 

 

이제 설정은 다 했고~실행 해 보니~~ 다음과 같이 깔끔하게 시행되더군요.

 

아래 주소에서는 Matlab/Octave 와 Armadillo 의 문법을 비교하던데… 정말 Matlab/Octave 처럼 문법이 무지하게 간단하더군요.

 

http://arma.sourceforge.net/docs.html#syntax

 

잘 써봐야겠네요~



+ Recent posts