本文介绍了GMP使用MinGW在Windows的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我设法成功地建立在我的Windows 7(64位计算机)的GMP库。我遵循的步骤是:
./配置--enable_cxx --disable静电--enable-共享 - preFIX =/ C / MinGW的
使
使安装
做检查
所有的测试顺利通过。很显然,我在那里有可能编译和运行程序的GMP点。但是,当我尝试编译下面的程序:
的#include<&stdlib.h中GT;
#包括LT&;&string.h中GT;
#包括LT&;&stdio.h中GT;
#包括LT&;&gmp.h GT;字符*的progname;无效print_usage_and_exit()
{
fprintf中(标准错误,用法:%s的-q NNN \\ n,将progname);
fprintf中(标准错误,用法:%s的NNN ... \\ N的progname);
出口(-1);
}INT主(INT ARGC,字符** argv的)
{
mpz_t N;
INT I; 将progname =的argv [0]; 如果(的argc 2)
print_usage_and_exit(); mpz_init(N); 如果(的argc == 3和;&放大器;的strcmp(的argv [1],-q)== 0)
{
如果(mpz_set_str(N,的argv [2],0)!= 0)
print_usage_and_exit();
出口(mpz_probab_prime_p(N,25)== 0);
} 对于(i = 1; I< ARGC,我++)
{
INT结果;
如果(mpz_set_str(N,的argv [I],0)!= 0)
print_usage_and_exit();
结果= mpz_probab_prime_p(N,25);
mpz_out_str(标准输出,10,N);
如果(结果== 0)
看跌期权(是合);
否则,如果(结果== 1)
看跌期权(是一个可能的素数);
否则/ *结果== 2 * /
看跌期权(是素);
}
出口(0);
}
使用以下命令:
的gcc -m32 -lgmp的main.c
我收到以下错误:
C:\\用户\\亚历克斯\\应用程序数据\\本地的\\ Temp \\ cc2ZHzEt.o:main.c中:(文字+ 0x7f)中的:未定义的参考`_imp____gmpz_init
C:\\用户\\亚历克斯\\应用程序数据\\本地的\\ Temp \\ cc2ZHzEt.o:main.c中:(文字+ 0xc3):未定义的参考`_imp____gmpz_set_str
C:\\用户\\亚历克斯\\应用程序数据\\本地的\\ Temp \\ cc2ZHzEt.o:main.c中:(文字+ 0xe2):未定义的参考`_imp____gmpz_probab_prime_p
C:\\用户\\亚历克斯\\应用程序数据\\本地的\\ Temp \\ cc2ZHzEt.o:main.c中:(文字+ 0x12b):未定义的参考`_imp____gmpz_set_str
C:\\用户\\亚历克斯\\应用程序数据\\本地的\\ Temp \\ cc2ZHzEt.o:main.c中:(文字+ 0x14a):未定义的参考`_imp____gmpz_probab_prime_p
C:\\用户\\亚历克斯\\应用程序数据\\本地的\\ Temp \\ cc2ZHzEt.o:main.c中:(文字+量0x170):未定义的参考`_imp____gmpz_out_str
C:/ MinGW的/ bin中/../ lib中/ GCC / mingw32的/ 4.7.2 /../../../../的mingw32 /斌/ ld.exe:C:\\用户\\亚历克斯\\应用程序数据\\本地\\ TEMP \\ cc2ZHzEt.o:在第`.eh_frame坏RELOC地址为0x20
C:/ MinGW的/ bin中/../ lib中/ GCC / mingw32的/ 4.7.2 /../../../../的mingw32 /斌/ ld.exe:最后一个环节失败:无效操作
collect2.exe:错误:LD返回1退出状态
谁能告诉我在做什么错?我做我的谷歌搜索,和几个太多时间后,你可以提供任何帮助将是AP preciated。谢谢!
解决方案
Try gcc -m32 main.c -lgmp
这篇关于GMP使用MinGW在Windows的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!