Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Eclipse cdt Eclipse C+使用GMP时出现问题+;(CDT太阳神)_Eclipse Cdt_Gmp - Fatal编程技术网

Eclipse cdt Eclipse C+使用GMP时出现问题+;(CDT太阳神)

Eclipse cdt Eclipse C+使用GMP时出现问题+;(CDT太阳神),eclipse-cdt,gmp,Eclipse Cdt,Gmp,我想用CDT编译我的代码: #include <iostream> #include <gmpxx.h> using namespace std; int main (void) { mpz_class a, b, c; a = 1234; b = "-5678"; c = a+b; cout << "sum is " << c << "\n"; cout << "abso

我想用CDT编译我的代码:

#include <iostream>
#include <gmpxx.h>

using namespace std;

int main (void) {
    mpz_class a, b, c;
    a = 1234;
    b = "-5678";
    c = a+b;
    cout << "sum is " << c << "\n";
    cout << "absolute value is " << abs(c) << "\n";
    cin >> a;
    return 0;
}
#包括
#包括
使用名称空间std;
内部主(空){
mpz_a类、b类、c类;
a=1234;
b=“-5678”;
c=a+b;

cout以下是设置电流的正确程序(从2013年7月2日起)GNU Bigunm库,Eclipse CDT,MINW和MCSI+ C++。为了通过这一点,你应该使用UNIX或Linux之前,以及Windows,你应该有一个模糊的回忆编程和编译程序。这是一个多星期的研究和硬核挫折的高潮,所以如果我弄乱了什么东西注意它否则我会用我的思想力量把你炸了

1) 我假设您已经下载并安装了Eclipse和MinGW,并且已经将msys安装到MinGW中。您必须在msys之前安装MinGW

2) 从gmplib.org下载GMP库的tarball到${GMP_Download}。我下载了GMP-5.1.2.tar.xz,因为我从未使用过lzip,也不知道它是否在msys中可用

3) 打开一个msys窗口(基本上是一个bash shell).cd${gmp_buid}和tar-Jxvf${gmp_download}/gmp-x.x.tar.xz

这些tar选项与您在web上的其他地方可能找到的不同!-Jxvf适合xz(我认为lzip),但对于gzip,您使用-xzvf

4) cd gmp-x.x.x并运行./config.guess。写下输出。接下来您将需要它

5) 运行./configure--prefix=${gmp\u build}--build=--enable cxx--with gnu ld

显然,如果你没有明确地告诉GMP来构建你的平台,它就构建了一切,这是不好的。CXX选项构建了C++库,并且GNULD允许它与LD一起工作。 6) 制造

7) 安装

例如:假设您安装到C:/gmp。您应该有gmp/include/gmp.h和gmpxx.h。您还应该有gmp/lib/libgmp.a、libgmpxx.a、libgmpxx.la。您还应该有一个包含内容的共享目录

8) 设置eclipse:

转到项目-->属性 在C/C++构建-->环境下,编辑PATH变量并添加${gmp\u build}/include;${gmp\u build}/lib 在C/C++生成-->设置-->工具设置-->GCC汇编程序-->常规下,添加${gmp_build}/include作为包含路径。 相同的地方,但--> GCC C++编译器>包含了${gMPyBug} /包含作为一个包含路径。 相同的地方--> GCC C++编译器-->杂项添加-LGMP-LGMPXX到行的末尾。 相同位置-->GCC C编译器添加与以前相同的包含路径和杂项选项。 同一地方->明文C++链接器> >库添加到“库(-L)”中,依次是GMP和GMPXX!现在将${GMPYBug }/LIB添加到“库搜索路径(-L)”中 在C/C++一般->路径和符号> >“乱伦”选项卡检查,你有${GMPYBuff}},包含在你的包含程序集,C和C++中。如果它们不存在,你可能会弄乱一个早期步骤。它们应该被Eclipse自动填充。 “同一位置-->库”选项卡检查gmp和gmpxx的顺序。它应该已经填充。 同一位置-->库路径选项卡检查${gmp\u build}/lib,它应该已经存在。 点击“应用”并确保重建索引,否则更改将无法进行。点击“确定”结束。 9) 运行此简短程序以验证您的设置:

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <gmp.h>
#include <gmpxx.h>

using namespace std;

int main ()
{
    mpz_t p;
    mpz_init_set_ui (p,3);

    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
mpz_t p;
mpz_初始集(p,3);
返回0;
}
编译命令应类似于以下内容:

g++“-IC:\gmp\include“-O0-g3-Wall-c-fmessage length=0-lgmp-lgmpxx-o main.o”。\main.cpp“g++”-LC:\gmp\lib“-o GMPDebug.exe main.o-lgmp-lgmpxx

注:

1) 选项的顺序很重要。我不知道所有的原因,但是如果第二个命令行(链接程序)在-o选项之前有-lgmp-lgmpxx标志,链接将非常失败

2) l标志是一个棘手的标记。它实际上表示“在-l中查找libliblibrary.a”。在本例中,“在C:\gmp\lib中查找libgmp.a和libgmpxx.a”

3) 我听说过cout和64位版本的eclipse的bug,所以我使用的是32位版本,在这里我看到了相同的bug.:-)

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <gmp.h>
#include <gmpxx.h>

using namespace std;

int main ()
{
    mpz_t p;
    mpz_init_set_ui (p,3);

    return 0;
}