尝试使用boost库时gmp.h丢失了

时间:2018-02-02 17:47:57

标签: c++ windows boost

我正在尝试在Windows上使用带有QT的boost库。我已成功构建了库,并设法将其包含在我的项目中。但是,在包含gmp(#include "boost/multiprecision/gmp.hpp")和创建对象(boost::multiprecision::mpz_int myint;)时,我收到以下错误:

C:\Users\Laurenz\Documents\libraries\boost_1_66_0\include\boost\multiprecision\gmp.hpp:31: error: gmp.h: No such file or directory

事实上,我无法在boost目录中找到任何此类文件。我做错了什么?

1 个答案:

答案 0 :(得分:1)

安装依赖项并链接到它。 (见What is an undefined reference/unresolved external symbol error and how do I fix it?

或者,请考虑使用GMP,而是使用cpp_int.hpp

由于您已经安装了GMP库,因此这是最后一步:

<强> Live On Coliru

#include <boost/multiprecision/gmp.hpp>
#include <iostream>

int main() {
    boost::multiprecision::mpz_int i("1238192389824723487823749827349879872342834792374897923479");

    std::cout << pow(i, 3) << "\n";
}

注意编译/链接命令的末尾的-lgmp标志

g++ -std=c++11 -O2 -Wall -Wextra -pedantic main.cpp -o demo -lgmp

运行它:

./demo
1898298004808110659499396020993351679788129852647955073547637871096272981567489303363372689896302906549189545322451852317205769760555889831589125591739044248515246136031239