我正在尝试在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目录中找到任何此类文件。我做错了什么?
答案 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