Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带有gmp的代码块,带有<&书信电报;运算符和mp*_类_C++_Io_Codeblocks_Gmp - Fatal编程技术网

C++ 带有gmp的代码块,带有<&书信电报;运算符和mp*_类

C++ 带有gmp的代码块,带有<&书信电报;运算符和mp*_类,c++,io,codeblocks,gmp,C++,Io,Codeblocks,Gmp,我在Win 7 64机器上使用gcc 4.7.2和gmp 5.0.5的代码块。 在开始使用gmpxx后,我看到一个奇怪的segfault,它不会出现在+、-,等运算符中,但使用OK,是时候将其标记为已回答了。事实上,我是通过mingw-get安装gmp的,而在谷歌的几乎所有地方,它都表示自己为自己的系统构建gmp。这是一个愚蠢的错误,多亏了@Lol4t0的评论,现在一切正常。 所以对于所有像我这样的新人来说: 1) 使用MSYS安装MinGW 2) 下载gmp源代码并解压缩到mingw\msys

我在Win 7 64机器上使用gcc 4.7.2和gmp 5.0.5的代码块。
在开始使用gmpxx后,我看到一个奇怪的segfault,它不会出现在+、-,等运算符中,但使用OK,是时候将其标记为已回答了。事实上,我是通过mingw-get安装gmp的,而在谷歌的几乎所有地方,它都表示自己为自己的系统构建gmp。这是一个愚蠢的错误,多亏了@Lol4t0的评论,现在一切正常。 所以对于所有像我这样的新人来说:

1) 使用MSYS安装MinGW

2) 下载gmp源代码并解压缩到mingw\msys\1.0\home中的某个文件夹\

3) 打开mingw shell并导航到gmp文件夹

4) ./configure--enable cxx--prefix=/home/newgmpinstall

5) 制造

6) 安装

7) 核对

如果检查为ok,那么在newgmpinstall中,您将找到适用于您的系统的标题gmp.h和gmpxx.h以及库libgmp.a和libgmpxx.a

如果愿意,可以将它们移动到新文件夹中。然后在IDE项目属性中将*.a文件添加到链接库中,并将包含*.h文件的文件夹添加到编译器搜索目录中

编写代码


注意:首先./configure退出时出现一个关于M4丢失的错误,因为我丢失了M4包。只需下载M4的源代码,首先为M4执行上述步骤,然后安装gmp。

好的,是时候将此标记为已回答。事实上,我是通过mingw-get安装gmp的,而在谷歌的几乎所有地方,它都表示自己为自己的系统构建gmp。这是一个愚蠢的错误,多亏了@Lol4t0的评论,现在一切正常。 所以对于所有像我这样的新人来说:

1) 使用MSYS安装MinGW

2) 下载gmp源代码并解压缩到mingw\msys\1.0\home中的某个文件夹\

3) 打开mingw shell并导航到gmp文件夹

4) ./configure--enable cxx--prefix=/home/newgmpinstall

5) 制造

6) 安装

7) 核对

如果检查为ok,那么在newgmpinstall中,您将找到适用于您的系统的标题gmp.h和gmpxx.h以及库libgmp.a和libgmpxx.a

如果愿意,可以将它们移动到新文件夹中。然后在IDE项目属性中将*.a文件添加到链接库中,并将包含*.h文件的文件夹添加到编译器搜索目录中

编写代码


注意:首先./configure退出时出现一个关于M4丢失的错误,因为我丢失了M4包。只需下载M4的源代码,并首先为M4执行上述步骤,然后安装gmp。

您是否自己制作了
gmp?它是否通过了
makecheck
验证?它是否真的在
操作符中存在错误?那么,您从哪里得到了“gcc 5.0.5”?如果你可以从未来下载代码,难道你不能找到你的程序的未来版本并下载它,这样你就不必编写它了吗?:)@Lol4t0不,我使用mingw get并假设它会工作,到目前为止它确实工作了。我刚刚建造了它,现在可以正常工作了。非常感谢,我真不敢相信我忽略了这么重要的事情。@abarnet对于错误的版本号表示抱歉,它是gcc 4.7.2和gmp 5.0.5。现在我在Win2.0.4上,听一些关于VLC7:)的内容。segfault发生在gmpxx.h的第2085行,但如上所述,我错误地认为mingw get将提供一个在我的系统上完美运行的gmp库。谢谢很多人的帮助。你是自己制作的吗?它是否通过了
makecheck
验证?它是否真的在
操作符中存在错误?那么,您从哪里得到了“gcc 5.0.5”?如果你可以从未来下载代码,难道你不能找到你的程序的未来版本并下载它,这样你就不必编写它了吗?:)@Lol4t0不,我使用mingw get并假设它会工作,到目前为止它确实工作了。我刚刚建造了它,现在可以正常工作了。非常感谢,我真不敢相信我忽略了这么重要的事情。@abarnet对于错误的版本号表示抱歉,它是gcc 4.7.2和gmp 5.0.5。现在我在Win2.0.4上,听一些关于VLC7:)的内容。segfault发生在gmpxx.h的第2085行,但如上所述,我错误地认为mingw get将提供一个在我的系统上完美运行的gmp库。谢谢很多人的帮助。
#include <iostream>
#include <gmpxx.h>

using namespace std;

int main()
{
    mpz_class c = 21;
    cout << c << endl;
}
#include <iostream>
#include <gmpxx.h>

using namespace std;

int main()
{
    mpz_class a = 3, b = 8, c;
    c = a + b;
    cout << c.get_str() << endl;
}
#include <iostream>
#include <gmpxx.h>

using namespace std;

int main()
{
    mpz_class a = 3, b = 8, c, d = 21;
    c = a + b;
    cout << c.get_str() << endl;
    cout << d << endl;
}