gmpxx.h:没有这个文件或目录。

5
我刚刚安装了一份全新的mingw(32位),从官方项目页面在Sourceforge下载。我安装了包中的所有编译器及相关内容。接下来,我从这里下载了适用于MinGW的gmp。我在mingw文件夹的某个位置中解压了gmp-5.0.1-1-mingw32-src.tar.lzma,然后在那里运行了./pkgbuild。它运行了几分钟,然后打印出了类似于COMPLETED EVERYTHING OK, EVERYTHING PASS的信息。
随后,我写了一个简单的示例程序来检查是否能正常工作:
#include <gmpxx.h>

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";

  return 0;
}

然后使用g++ mycxxprog.cc -lgmpxx -lgmp进行编译。 我得到的唯一答案是:

Fatal error: gmpxx.h: No such file or directory.

有没有人有什么提示?我真的不知道该怎么办……

4个回答

17

gmpxx.h头文件包含在libgmp-dev软件包中。

您可以使用以下命令在基于Ubuntu的机器上安装它:

$ sudo apt-get install libgmp-dev

1
问题出在MinGW上,所以在这里告诉你在Ubuntu机器上该怎么做是毫无用处的。 - Max
那么在运行后它在哪里? - Kvothe

6
如果您正在从源代码构建gmp,您需要在configure命令中添加--enable-cxx标志。

4
您可以将其复制到路径“/usr/include/”中,系统会找到它。

3

你需要确保已经将该目录加入到头文件搜索路径中。找到 gmpxx.h 头文件所在位置,并在 g++ 命令行中添加参数 -I /path/to/header/


我在这里遇到了同样的问题,而且我找不到文件:我运行sudo find / -iname gmpxx.h,但没有返回结果。:s - Hilder Vitor Lima Pereira
@VitorLima:你确定已经安装了必要的软件包吗? - carlpett
1
我回到了gmp的网站,发现我需要在configure脚本中传递标志*--enable-cxx*。因此,我重新编译了gmp库并运行了ldconfig。现在,它工作得很好,我甚至不需要使用-I选项来编译我的程序。(: - Hilder Vitor Lima Pereira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接