当前位置:首页 » 编程软件 » gmp编译

gmp编译

发布时间: 2022-06-23 10:03:45

❶ 大数库 比较 GMP MPIR MPFR MPC

GMP 是GNU组织的主力库,也推广捆绑到多门语言、各种linux上。
MPFP、MPIR都是基于GMP上分别对浮点和整型的进一步专门化的库。
MPC是算“复数”的库,并非一般大数。
一般的大数运算,用GMP足够了。GMP支持win下的mingw编译
但如果要在vc下用就要改代码,或者找些别人改过的补丁。
vc本身也可以操作.net框架的decimal大数模块。

❷ 安装gmp后怎样编译cpp文件

gmp安装及使用摘要

GNU Multiple Precision Arithmetic Library

首先,去libgmp官网下载最新的gmp包。(我下的是gmp-5.1.0)

然后gmp-5.1.0.tar.bz2。使用命令

tar -jvxf gmp-5.1.0.tar.bz2

进入gmp-5.1.0文件夹

cd gmp-5.1.0

接下来比较关键,在使用configure的时候要加上 --enable-cxx命令,否则不能使用c++库gmpxx.h(今年寒假的时候没加这个命令也可以,但现在貌似不行了- -)

./configure --enable-cxx

然后

make

make check

最后

sudo make install

就安装完成了。

可以试着编写一个样例程序:

#include<gmpxx.h>
using namespace std;
int main()
{
mpz_t a, b, c, d;
mpz_init(a);
mpz_init(b);
mpz_init(c);
mpz_init(d);
//计算2的1000次方
mpz_init_set_ui(a, 2);
mpz_pow_ui(c, a, 1000);
gmp_printf("c = %Zd\n", c);

//计算12345678900987654321*98765432100123456789
mpz_init_set_str(b, "12345678900987654321", 10);//10进制
mpz_init_set_str(c, "98765432100123456789", 10);
mpz_mul(d, b, c);
gmp_printf("d = %Zd\n", d);
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
mpz_clear(d);
return 0;
}

以上程序貌似是C的,编译时使用:

gcc name.c -o name.o -lgmp

对于C++,编码会方便一些:

#include<iostream>
#include<gmpxx.h>
using namespace std;
int main()
{
mpz_class a;
//计算2的1000次方,似乎C++就没有数学函数支持了?
a = 1;
for(int i = 0; i < 1000; i++)
a *= 2;
cout<<"2^1000 = "<<a<<endl;
//计算-12345*9876543210123456789
mpz_class b, c;
b = -12345;
c = "98765432100123456789";
cout<<"b * c = "<<b * c<<endl;
return 0;
}

编译用:

g++ name.cpp -o name.o -lgmpxx -lgmp

❸ Linux(Ubuntu)自带了gcc编译器,我还需要装gmp和mpfr吗怎么办,是不是需要重装gcc

gcc肯定不用重装,你看下有没装,没装装上gmp好mpfr就好了,看的方法是命令:
rpm -q gm

❹ arm-linux-gcc编译openssl、pbc、gmp库问题

你用的是什么环境?要么就是缺少库,要么就是缺少资源依懒,都是这些问题!

❺ vs2017使用gmp类库时输入输出符号无法解析外部符号

我在vs2008环境下面遇到了这个问题总算自己解决了如果选择的是win32而非x64配置,对应的库目录一定要设置到x86而非x64在win32配置下使用x64 directx 库就会出现这种情况解决方法:假设directx目录为 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\则对于win32配置项目->属性->C/C++->常规->附加包含目录 添加 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include项目->属性->链接器->常规->附加库目录 添加 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86然后选择全部重新编译我就是这样解决了这个问题

❻ gmp如何编译安装php已经装好了,想增加这个模块。

cd gmpphpize./configuremake && make install

❼ 如何在windows下编译GMP软件包为。lib或者dll的

56
4168659+

❽ 如何在windows下编译GMP软件包

1、下载GMP源代码,展开到d:/gmp
http://gmplib.org/#DOWNLOAD
2、下载MinGW windows下的GNU C编译器
http://sourceforge.net/project/showfiles.php?group_id=2435
中的AutoMated MinGW Installer下载完后执行,选择下载并安装
安装选项选择第一,二和最后共三个组件,安装在d:/minGW
3、 http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe?modtime=1079444447&big_mirror=1
下载MSYS MinGW的辅助环境
安装到d:/msys,安装时有两个提示,第一个提示输入Y, 第二个提示输入MinGW安装路径d:/MinGW

完成后桌面出现msys快捷方式

4、进入d:/msys/1.0/etc编辑fstab文件
加入行
d:/gmp /gmp

5、点击msys进入环境
cd /gmp进入gmp虚拟路径
依次执行(每个都会执行很长时间)
./configure
make
make install
则编译出静态包
如果执行
./configure --disable-static --enable-shared
make
make install
则编译出dll

❾ windows下如何用cygwin 编译gmp

cygwin可以编译生成windows下供调用的dll,包括vc可识别的lib。

Cygwin-GCC : Cygwin自带了一个GCC,用于把C/C++-Source编译成Cygwin平台下的EXE/DLL (使用Cygwin必须用其自带的GCC, 因为内部会生成一些针对于平台的特定的初始化代码,如果用其余版本的GCC则很有可能导致程序不能正常运行.)

Cygwin-GCC : Cygwin自带了一个GCC,用于把C/C++-Source编译成Cygwin平台下的EXE/DLL (使用Cygwin必须用其自带的GCC, 因为内部会生成一些针对于平台的特定的初始化代码,如果用其余版本的GCC则很有可能导致程序不能正常运行.)

说明 - Cygwin-GCC :

在Cygwin-Shell中可直接使用gcc .如下 :

gcc -shared xxx.c -o xxx.dll //编译成DLL, 注意,Cygwin-GCC默认导出所有的Function.

gcc -c xxx.c -o xxx.o //编译成OBJ

gcc xxx.c -o xxx.exe //编译成EXE

ar r xxx.lib xxx1.o xxx2.o //打包多个obj成一个Lib (非连接)

gcc xxx.c ./L aaa.dll -o xxx.exe //引用外部DLL生成EXE

gcc xxx.c yyy.c -o zzz.exe //连接多个C文件,生成EXE.

gcc -I"/bin/include"-c xxx.c -o xxx.o //引用/bin/include目录下头文件,生成OBJ

gcc -L"dll.a" xxx.c -o xxx.exe //连接dll.a,生成EXE

如果想知道编译时具体的信息,可以使用--verbose这个编译选项,对于了解GCC的工作是很有帮助的.

额外的,也可以写自己的导出Lib文件,以方便其余程序引用DLL (如Cobol2002编译器就不支持直接引用DLL, 这个时候可以写一个Def,并导出Lib文件,便于Cobol2002使用)

具体方法如下:

1. 编译生成DLL :

如: gcc -shared MyTest.c -o MyTest.dll, 生成MyTest.dll.

2. 写一个DEF文件 (这里是MyTest.def),简单的格式大致如下:

LIBRARY MyTest //这里的MyTest对应于MyTest.dll
EXPORTS
AllocMemory @1 //导出的第一个function : 对应于MyTest.dll里面的AllocMemory(...), 注意,参数可不用写
ReadMemory @2 //导出的第二个function : 对应于MyTest.dll里面的ReadMemory-Function.

//注意:function可以不用全部导出,可以只选择你需要的Function.

3. 用LIB工具(VC6有提供)生成LIB文件 (这里是MyTest.lib) :

lib /def:MyTest.def //默认生成的名称为MyTest.lib.

4. 到此生成完毕,连接的时候只需要引用MyTest.lib即可,但要注意XXX.exe 和MyTest.dll要放在同一目录下.

可以用 gcc --help 查看具体的命令 etc...

热点内容
python集合运算符 发布:2025-02-14 03:06:18 浏览:205
pic编译软件 发布:2025-02-14 03:01:04 浏览:984
反编译在编译 发布:2025-02-14 02:55:36 浏览:418
python打印对象 发布:2025-02-14 02:51:20 浏览:573
QRM算法 发布:2025-02-14 02:45:19 浏览:266
c语言打印结构体 发布:2025-02-14 02:42:28 浏览:141
编译技术实验一 发布:2025-02-14 02:28:24 浏览:648
编程手机入门 发布:2025-02-14 02:27:40 浏览:734
局域网视频android 发布:2025-02-14 02:23:56 浏览:424
麒麟系统如何安装安卓程序 发布:2025-02-14 02:07:21 浏览:400