在windows下编译gmplib并使用vs2010成功调用

首先是动态库的生成和使用方法:
参考网址:
https://stackoverflow.com/questions/4711315/build-gmp-on-64bit-windows
https://suchideas.com/journal/2007/7/installing-gmp-on-windows
https://zhidao.baidu.com/question/540872870.html
https://blog.csdn.net/onebluemorning/article/details/6566214
我使用的方法,编译的是6.1.2版本,得到了动态库:
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步可有可无
#4、进入d:/msys/1.0/etc编辑fstab文件
#加入行
#d:/gmp /gmp
5、点击msys进入环境
cd /gmp进入gmp虚拟路径
依次执行(每个都会执行很长时间)


./configure  --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --disable-static --enable-shared
make
make check
make install
则编译出动态库libgmp.dll.a等一堆文件,在.libs文件夹里存放


1. 添加头文件到工程里,c程序使用gmp.h,c++使用gmpxx.h。
2. 添加文件引用的库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上libgmp.dll.a文件存放目录,我的是 附加库目录:C:\gmp\gmp-6.1.2.dllDone\.libs;%(AdditionalLibraryDirectories)。
3. 然后添加工程引用的库文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上libgmp.dll.a,我的是 附加依赖项:libgmp.dll.a;%(AdditionalDependencies)
4. 执行程序碰到系统缺失dll的情况,就把该文件夹内的文件放入系统里。即把缺失的dll(该dll应该在我提供的文件夹或者bin文件夹里有,bin文件夹不是工程所需,里面可能有系统需要的dll,我就把它全拿过来备用了)放入下面的文件夹里:Windows 64位系统一般路径为C:\Windows\SysWOW64,32位系统为C:\Windows\System32


静态库的生成和使用方法:


参考网址:
https://blog.csdn.net/qiuchangyong/article/details/19119997
https://zhidao.baidu.com/question/540872870.html
我使用的方法,编译的是6.1.2版本,得到了静态库:
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步可有可无
#4、进入d:/msys/1.0/etc编辑fstab文件
#加入行
#d:/gmp /gmp
5、点击msys进入环境
cd /gmp进入gmp虚拟路径
依次执行(每个都会执行很长时间)


./configure
make
make check
make install
则编译出静态库libgmp.a等一堆文件,在.libs文件夹里存放


1. 添加头文件到工程里,c程序使用gmp.h,c++使用gmpxx.h。
2. 找到MinGW的lib文件夹里的libmingwex.a和C:/MinGW/lib/gcc/mingw32/6.3.0下的libgcc.a以及静态库libgmp.a,并复制这三个文件到工程下
3. 工程中的cpp文件使用方式的特殊地方如下:
#include <stdio.h>
#include "gmp.h"
#pragma comment(lib,"libgmp.a")
#pragma comment(lib,"libgcc.a")
#pragma comment(lib,"libmingwex.a")
int main()
{
mpz_t a;
mpz_init a;
mpz_set_si(a,1);
gmp_printf("%Zd\n",a);
mpz_clear(a);
return 0;
}
阅读更多

没有更多推荐了,返回首页