C++で任意精度演算をしようと思い、以下の手順でVisualStudio2015で扱ってみました。Windows10です。
1.MPIR(2.7.2)をダウンロードし、build.vc14のmpir.slnを開いてdll_mpir_gcをビルド
2.VS2015のプロジェクトのプロパティからV/C++ディレクトリのインクルードディレクトリにgmp.hやgmpxx.h、mpir.dllなどがあるフォルダパスを追加
3.C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\binにvsyasm.exeを追加、\libにmpir.libとmpir.pdbをコピー
4.プロジェクトのプロパティ、リンカーの入力の追加の依存ファイルにmpir.libを追加
そして以下のコードを書き、ビルドしてみました。
#include "stdafx.h"
#include <iostream>
#include "gmpxx.h"
//#include "mpirxx.h"も試しましたが同様
int main() {
mpz_class a = 0 ,b = 1;
a = a + b;
std::string c = a.get_str();
std::cout << c;
return 0;
}
検索してみる限りgmpの導入段階でのミスのようなのですが、調べた限りでは上記の4手順ですべてのような気がします。(gcならyasmはいらないような気もします。)
C++自体初心者なのでなにか致命的なミスをしているかもしれません…。何を間違っているのでしょうか?
gccを使うべきとはわかっていますが、このままできないのも気持ち悪いのでなんとか解決したいです。
よろしくお願いします。