我已经为 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 上。所以,我再次建立了图书馆,但文件是一样的。
- 我使用本教程使用 MSYS 为 MinGW 构建 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 版本的工作文件,请分享。:(