MinGW 用の GMP を構築しました。私が使用している IDE は Code::Blocks です。GMP の C 関数に問題はありません。しかし、私はC++に問題があります。私が実行しようとしたプログラムは、これと同じくらい簡単です。
#include<iostream>
#include<gmpxx.h>
using namespace std;
main()
{
mpz_class a;
a=12345;
cout<<"value"<<a<<"\n";
return 0;
}
そして、私が得るエラーは
F:\Compilers\C_Libraries\GMP\lib\libgmpxx.a(osmpz.o):osmpz.cc|| undefined reference to `__gmpz_get_str'|
F:\Compilers\C_Libraries\GMP\lib\libgmpxx.a(osfuns.o):osfuns.cc:(.rdata+0x1c)||undefined reference to `__gmp_asprintf_memory'|
F:\Compilers\C_Libraries\GMP\lib\libgmpxx.a(osfuns.o):osfuns.cc:(.rdata+0x20)||undefined reference to `__gmp_asprintf_reps'|
F:\Compilers\C_Libraries\GMP\lib\libgmpxx.a(osdoprnti.o):osdoprnti.cc|| undefined reference to `__gmp_doprnt_integer'|
F:\Compilers\C_Libraries\GMP\lib\libgmpxx.a(osdoprnti.o):osdoprnti.cc|| undefined reference to `__gmp_asprintf_final'|
||=== Build finished: 5 errors, 0 warnings ===|
さて、いくつかの追加データ:
- C関数には何の問題もありません。また、 cout<< ステートメントを削除すると、ファイルはコンパイルされ、正常に実行されます。問題はおそらくオーバーロードされた演算子にあります。
- libgmpxx.a と libgmp.a はコンパイラとリンクされています。エラーメッセージにも表示されます...
- 問題はおそらく libgmpxx.a だけにあります。そのため、ライブラリを再度ビルドしましたが、ファイルは同じです。
- このチュートリアルを使用して、MinGW の MSYS で GMP をビルドしました。http://www.cs.nyu.edu/exact/core/gmp/およびhttp://suchideas.com/journal/2007/07/installing-gmp-on-windows/
- 私が使用している GMP のバージョンは 5.0.4 です。
それで、私が知りたいのは、何が問題なのですか?そして、それはどのように解決できますか?また、解決できない場合、および 5.0.4 バージョンの作業ファイルがある場合は、共有してください。:(