MPIR Library는 The Multiple Precision Integers and Rationals Library 의 약자다.
MPIR을 사용하기 위해서는 먼저 yasm을 설정해줘야한다.
전에 올린 글에 설명이 되어 있으니 아래의 링크를 참고하여 visual studio에 yasm을 설치하자.
2016/05/12 - [CS/환경설정] - VISUAL STUDIO에 YASM 사용하기 (Using yasm with VISUAL STUDIO)
http://lecnote.tistory.com/entry/VISUAL-STUDIO%EC%97%90-YASM-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-Using-yasm-with-VISUAL-STUDIO
Now, get MPIR from below link.
이제 MPIR 라이브러리를 다운 받자.
http://mpir.org/index.html#release
현재(16년 5월 12일) 필자가 받는 버전은 2.7.2 버전이다.
다운 받은 압축 파일을 풀면
여러 폴더가 보이는데 그 중 현재 자신이 쓰고있는 VISUAL STUDIO 버전에 맞는 build.vcXX 폴더에 들어간다.
필자의 경우는 2013버전(vc 12.0)을 쓰고있으므로 mpir-2.7.2\build.vc12 아래와 같은 경로의 폴더에 들어갔다.
이 폴더 안에 있는 mpir.sln 파일을 연다. ( 비주얼 스튜디오 솔루션 파일)
비주얼 스튜디오가 열리면서 mpir 솔루션 안에 다양한 속성의 프로젝트 들이 있는 것을 확인할 수 있다.
각 프로젝트들의 설명은 아래 document로 대신한다.
이 중 본인이 원하는 환경에 맞게 프로젝트를 Release 모드로 빌드하면된다.
필자는 C++ 개발을 할 예정이므로 이 중에서 cxx 버전을 빌드 하였다.
위의 document에도 나와 있듯이 build가 성공하게 되면 mpir-버전 폴더 아래에 dll 폴더나 lib 폴더에 해당하는 파일이 생성된다.
이제 visual studio에서 생성한 라이브러리를 사용할 수 있게 세팅해 보자.
필자는 lib_mpir-gc 를 빌드하였다. 따라서 mpir-2.7.2\lib\Win32\Release 폴더에 생성된 파일 중 mpir.lib와 mpir.pdb 두 파일을 복사하여
(cxx로 했으면 mpirxx.lib, mpirxx.pdb 도 포함)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib에 폴더에 붙여넣기 한다. (각자 환경에 맡게)
그리고 나머지 *.h 헤더파일도 복사하여 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include 에 붙여넣기 한다.
이러면 일단 설정 끝!
그후 실제 프로젝트에 사용하기 위해서는 프로젝트 설정을 바꾸는 절차가 필요하다.
아래 예제를 따라해보자.
win32 콘솔 어플리케이션 빈 프로젝트를 하나 생성하고 아래의 코드를 복붙한다.
#include <stdio.h>
#include <mpir.h>
int main (int argc, char *argv[])
{
mpz_t aBigPO2;
mpz_init(aBigPO2);
mpz_set_ui(aBigPO2, 1073741824); //2^30
mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^60
mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^120
mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^240
mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^480
mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^960
mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^1920
mpz_out_str(stdout,10,aBigPO2);
printf ("\n");
mpz_clear(aBigPO2);
}
이후 프로젝트에서 마우스 오른쪽 버튼을 눌러 properties에 들어간다.
Configuration Properties - Linker - Command Line 에 들어간다.
아래 Additional Options 입력란에 mpir.lib 를 입력한다. (cxx를 설치한 경우 mpirxx.lib 도 함께 입력)
그리고 나서 build 시켜보면 미션 석세스
2^1920 을 출력하는 프로그램인데, 아래와 같은 결과가 나오면 잘 실행된 것이다.
949711451807891414054698636958849699906924706346851167428009563305851
662866960338751057874083211050161729488483879798993810787765480587192
741530384819193300769874625884321977783469748956377553448566093328992
717820774610081821193616932757859144579109671494034728110890670954570
186561270637912025593911079819522904974136715161890547150302121514577
299257466073410681074505560366912534455201581754427662731068044605805
987604257959314070588213630129796572870132647963130222671409082294912
848599974253399700073940596408585364978789157781640247045138282505908
97948604589281308443672576
참고링크1 : http://hyacinth.byus.net/moniwiki/wiki.php/MPIR%EB%A1%9C%20C%2B%2B%20%EA%B3%A0%EC%A0%95%EB%B0%80%20%EC%97%B0%EC%82%B0%EC%9D%84%20%ED%95%B4%20%EB%B3%B4%EC%9E%90
참고링크2 : http://www.exploringbinary.com/how-to-install-and-run-gmp-on-windows-using-mpir/