我已經爲MinGW構建了GMP。我使用的IDE是Code :: Blocks。我對GMP的C功能沒有任何問題。但我遇到了C++的問題。我試圖運行的程序是如此簡單,GMP庫,C++編譯錯誤,MinGW,Code :: Blocks
#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版本的工作文件,請分享它。 :(
由於它解決了問題。我從來沒有想過訂購是一個問題。:\ 再次感謝。:) – ponir 2012-04-22 16:05:42