- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一些使用 libgmp 的代码。在某些时候,用户可能会请求一个非常大的数的阶乘。不幸的是,这会导致 libgmp 发出中止信号。
例如下面的代码:
#include <cmath>
#include <gmp.h>
#include <iostream>
int main() {
mpz_t result;
mpz_init(result);
mpz_fac_ui(result, 20922789888000);
std::cout << mpz_get_si(result) << std::endl;
}
结果:
$ ./test
gmp: overflow in mpz type
Aborted
显然,产生的数量真的很大。有没有比中止更优雅地处理错误的方法。这是一个基于 GUI 的应用程序,它中止几乎是处理此类问题最不可取的方式。
最佳答案
根据 mpz/realloc.c 中的代码,您似乎运气不好和 mpz/realloc2.c .如果请求的内存太多,它只会这样做:
if (UNLIKELY (new_alloc > INT_MAX))
{
fprintf (stderr, "gmp: overflow in mpz type\n");
abort ();
}
关于c++ - 避免在 libgmp 中中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3558684/
我刚刚编译了 http://gmplib.org/ 的新版本 5.1。这些库似乎在 /usr/local/lib 如何替换位于/usr/lib 中的gmp 旧库?或者我可以在使用 g++ 编译程序时简
我有一些使用 libgmp 的代码。在某些时候,用户可能会请求一个非常大的数的阶乘。不幸的是,这会导致 libgmp 发出中止信号。 例如下面的代码: #include #include #inc
我最近在我的 64 位 Windows 7 计算机上安装了 MinGW,当我尝试编译最基本的 c++ 程序时,例如 #include using namespace std; int main() {
我在编译 gnuplot 时遇到了这个问题,但我相信这是更普遍的问题。编译器正在选择不兼容版本的 gmp 和 mpfr 对库。不知道要通过配置什么来解决这个问题。 现在我的系统 libgmp 和 li
我正在尝试将 NDK 构建为静态的 libgmp(共享也不起作用),我需要它来链接 nettle 和 gnutls。我使用的版本如下: GMP:6.1.2 NDK:r16b 目标:x86_64 应用程
我知道各种平台上有许多用于 C 的 BigInt 库以及如何使用它们,但我很好奇:它们是如何工作的?我将如何着手构建自己的库(我不打算尝试,重新发明轮子毫无意义,但我对它如何发生很感兴趣)?任何人都可
GMP 文档说静态链接可能会提供小的性能改进。 我在 Linux 系统上静态链接 libgmp 时遇到问题。我已将我遇到的问题缩小到一个小测试用例。 gmptest.c #include int m
我刚刚在 RHEL 上安装了 php 5.4.16,但我也想安装 mbstring。当我尝试通过 yum 安装它时...我在 libgmp.so.3 上遇到依赖错误 [root@ip-108-205-
我正在尝试让 gmp 正常工作,以便我可以使用大整数。我已经编译好了,但是当我尝试用它编译我的代码时,我不断收到如下错误: .../libgmp.so: undefined reference to
我用 SUSE Linux 10.1 设置了一台古老的机器,并试图构建一个当前的 gcc 发行版,但它需要 gmp、mprf 和 mpc。 现在,我成功安装了 gmp,我在/usr/local/inc
我是第一次尝试在 Linux 上安装 Haskell 平台(我也是一个相当新的 Linux 用户)。受害者系统是一个全新的 Red Hat 系统。这里涉及的所有内容都应该是 64 位的。 平台网站 [
我正在使用 centos-ansible,我面临如下问题。 仅供引用,当我使用 ubuntu -ansible 我没有收到以下警告,我可以继续使用相同的剧本。但是在 centos 中我失败了相同的 y
我尝试从 ubuntu 应用程序中心安装不同的 libgmp,并尝试从 http://gmplib.org/#DOWNLOAD 手动安装它。但我无法让它配置它是一个旧的库,我正在尝试在最新版本的 ub
尝试“制作”cpabe-0.11 toolkit/library 时出现以下错误在 Ubuntu 12.04(64 位)上。系统中正确安装了所有必需的库,包括 libgmp。 /usr/bin/ld:
我刚刚安装了带有 RVM 的 Ruby 2.2.0,并尝试使用它得到了这个: $ rvm use 2.2.0 --default Using /Users/brandon/.rvm/gems/ruby
我正在尝试在 linux 上的本地构建中安装 gcc-4.9.0 以及 gmp-4.3.2,mpfr-3.1.4 和 mpc-1.0.3(我正在学习 this 教程)。 但是当我在 gcc 构建目录中
我一直在尝试在终端中运行脚本,每次我都会得到: $ ruby directory.rb dyld: Library not loaded: /usr/local/lib/libgmp.10.dylib
我安装了 GNUStep http://www.gnustep.org/experience/Windows.html但是在编译 helloworld.m 时,我缺少了 libgmp-10.dll。
大约 2 周前我更新了我的操作系统,从那时起我就遇到了这个问题: > ruby -v dyld: Library not loaded: /usr/local/opt/gmp/l
我正在开展一个研究项目,该项目需要使用在旧版 Haskell 和 GHC(特别是 7.6.3)之上运行的软件。我已经设法下载了源代码,但是每当我运行配置脚本(带有任何选项)时,都会出现以下错误:che
我是一名优秀的程序员,十分优秀!