前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【win10+编译gmp大数库】

【win10+编译gmp大数库】

作者头像
用户3519280
发布2023-07-08 14:43:42
3010
发布2023-07-08 14:43:42
举报
文章被收录于专栏:c++ 学习分享

另外一个头痛的问题就是mingw编译出来的静态库后缀名为.a,编译出来的动态库的导入库后缀名为.dll.a,而在Windows下一般使用.lib的来作为静态库或者动态库的导入库。好在VS中是能够识别.a文件作为导入库的,像加载.lib一样加载dll.a即可:

#pragma comment(lib, “libgmp.dll.a”) 1. 注意使用动态库时,单独运行时可能会提示缺少dll,libgmp.dll还依赖了mingw中的一些运行时库,根据提示找到相应的dll即可。

示例 在VS环境中设置好动态库环境,使用实例代码如下:

win10+编译gmp大数库(亲测可用)

代码语言:javascript
复制
#include <iostream>

#include "gmp.h"
using namespace std;
int main()
{
    std::cout << "Hello World!\n";
    
    //计算2的1000次方
    {
        size_t a = 1;
        for (int i = 0; i < 1000; i++)
        {
            a *= 2;
        }
        cout << "2^1000 = " << a << endl;
    }
    {
        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);
    }

    //大数运算
    {
        mpz_t b, c, d;
        mpz_init(b);
        mpz_init(c);
        mpz_init(d);

        //计算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(b);
        mpz_clear(c);
        mpz_clear(d);
    }

    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 示例 在VS环境中设置好动态库环境,使用实例代码如下:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档