我正在使用GMP并收到我发现由mpf_set_d引起的非法指令。我正在使用c ++中的cygwin编写Netbeans编程。
提前致谢!
编辑:
我有一个包含以下文件的文件夹: .dep.inc,cyggcc_s-seh-1.dll,cyggmp-10.dll,cyggmpxx-4.dll,cygstdc ++ - 6.dll,cygwin1.dll,我的可执行文件,gmp.h,gmpxx.h,libgmp.a, libgmp.la,libgmp.lai,libgmp.lai,libgmp.libcmd,libgmpxx.a,libgmpxx.la,libgmpxx.lai,main.cpp,main.o,main.od,Makefile,程序和文件夹所需的文本文件对于程序。
我尝试过很多东西,其中一个是在这个运行以下代码的文件夹中添加一个可执行文件:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include "gmpxx.h"
#include <stdarg.h>
#include <string>
using namespace std;
int main()
{
mpf_t a;
mpf_init(a);
mpf_set_d(a,3.1415926535);
cout << "works" << endl;
}
在安装了GMP的我自己的计算机上运行它会让我“工作”,然后关闭,在另一台没有安装GMP的计算机上,它会抛出错误并关闭。错误是一个例外:status_illegal_instruction。
我不能给你我的代码,但我可以发帖子。如果需要更多信息,请告诉我!
再次感谢。
编辑2:
mpf_set_str以及c ++包装器的计数相同。