美文网首页我爱编程
编译gmp在windows下可以使用的动态库和静态库

编译gmp在windows下可以使用的动态库和静态库

作者: LiuleLaile | 来源:发表于2018-04-15 00:18 被阅读0次

    首先是动态库的生成和使用方法:

    参考网址: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:/gmphttp://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

    #include#include "gmp.h"

    int main()

    {

    mpz_t a,b;

    mpz_init(a);

    mpz_init(b);

    mpz_set_si(a,1);

    mpz_set_si(b,2);

    mpz_add(a,b,a);

    gmp_printf("%Zd\n",a);

    gmp_printf("%Zd\n",b);

    mpz_clear(a);

    mpz_clear(b);

    return 0;

    }

    静态库的生成和使用方法:参考网址:https://blog.csdn.net/qiuchangyong/article/details/19119997https://zhidao.baidu.com/question/540872870.html我使用的方法,编译的是6.1.2版本,得到了静态库:

    1、下载GMP源代码,展开到d:/gmphttp://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;

    }

    相关文章

      网友评论

        本文标题:编译gmp在windows下可以使用的动态库和静态库

        本文链接:https://www.haomeiwen.com/subject/ewirkftx.html