在学校电脑上运行GMP程序
Run program with GMP on school computer
我想在学校运行一个使用GMP库编写的程序,但我需要你的帮助才能实现。这个程序本身还可以,但我不知道如何正确地包括GMP。我使用的是Netbeans IDE和cygwin,程序是用c++编写的。有人能告诉我如何做到这一点吗?有很多事情我不确定,例如:
- 我需要专门为那台计算机编译吗
- 操作系统重要吗
如果这个问题已经在某个地方得到了回答,我很抱歉。我在谷歌上搜索了很长一段时间,但似乎什么都找不到,甚至连GMP本身的例子都没有。
提前感谢!
编辑:
我真的不知道该怎么联系。程序立即崩溃并转储堆栈。上面写着:异常:STATUS_ILLEGAL_INSTRUCTION。在文件夹中,我有cyggcc_s-seh-1.dll、cyggmp-10.dll、cygstdc++=6.dll、cygwin1.dll、exe、gmpxx.h、libgmp.a、libgmp.la、libgmp-lai、libgmplibcmd、libgmpxx.a、libgm pxx.la、libgm p xx.lai、main.cpp、main.o、main.o.d、.dep.inc以及我的程序所需的一些文件和文件夹。
我已经包含了gmp和gmpxx,当我构建它时,它给出了:
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory '/cygdrive/e/Documents/NetBeansProjects/GeneticPrimesFast'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin_4.x-Windows/geneticprimesfast.exe
make[2]: Entering directory '/cygdrive/e/Documents/NetBeansProjects/GeneticPrimesFast'
mkdir -p build/Debug/Cygwin_4.x-Windows
rm -f "build/Debug/Cygwin_4.x-Windows/main.o.d"
g++ -c -g -Werror -I../../GMP/gmp-6.0.0 -std=c++11 -MMD -MP -MF "build/Debug/Cygwin_4.x-Windows/main.o.d" -o build/Debug/Cygwin_4.x-Windows/main.o main.cpp
mkdir -p dist/Debug/Cygwin_4.x-Windows
g++ -o dist/Debug/Cygwin_4.x-Windows/geneticprimesfast build/Debug/Cygwin_4.x-Windows/main.o -lgmpxx -lgmp
make[2]: Leaving directory '/cygdrive/e/Documents/NetBeansProjects/GeneticPrimesFast'
make[1]: Leaving directory '/cygdrive/e/Documents/NetBeansProjects/GeneticPrimesFast'
BUILD SUCCESSFUL (total time: 2s)
我现在压力很大,因为我明天需要这个。任何帮助都将不胜感激!
编辑2:
我得出的结论是,n.m.可能是对的:这与代码有关。导致非法指令的典型原因是什么?
编辑3:
谢谢你的帮助!我发现它与gmp中的get_str命令有关(可能还有get_d)。有人知道在没有这个函数的情况下获取字符串的另一种方法吗?或者我用错了吗?
编辑4:
mpf_set_d也不起作用。这对项目来说至关重要。有人知道如何解决这个问题吗?或者我哪里出了问题?也许是开发工具,我该如何检查?
最有可能的罪魁祸首是某个地方的缓冲区/数组溢出,从而覆盖某个位置的函数或返回指针。稍后通过损坏指针的返回或调用会跳转到某个可执行但不包含有效指令的内存区域,这可能是因为它是数据,也可能是因为您跳到了多字节指令的中间。
如果您使用的是linux,我建议您使用valgrind来跟踪内存损坏。Windows上一定存在类似的工具。
- Mongodb c++驱动程序:如何查询元素的数组
- C++,系统无法执行指定的程序
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 重载操作程序时出错>>用于类中的字符串 memebr
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 试图在visual studio上用C++创建一个桌面应用程序
- 模板元程序查找相似的连续类型名称
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 如何通过cpp程序运行shell脚本
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- IPC使用多个管道和分支进程来运行Python程序
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 基于boost的程序的静态链接——zlib问题
- 程序崩溃并显示"std::out_of_range"错误
- 在学校电脑上运行GMP程序
- 将C++程序转换为使用 GMP
- c++程序使用GMP库