我正在尝试在 c++ 中提升多精度的简单示例,而无需将其安装在我的计算机上(仅使用它的标头)。
//func.cpp
#include <boost/multiprecision/cpp_int.hpp>
#include <iostream>
int main()
{
using namespace boost::multiprecision;
int128_t v = 1;
// Do some fixed precision arithmetic:
for(unsigned i = 1; i <= 20; ++i)
v *= i;
std::cout << v << std::endl; // prints 20!
// Repeat at arbitrary precision:
cpp_int u = 1;
for(unsigned i = 1; i <= 100; ++i)
u *= i;
std::cout << u << std::endl; // prints 100!
return 0;
}
我正在运行 ubuntu,我已经将 boost 文件夹复制到我试图在其中运行 func.cpp 的主文件夹中。然后我运行:
g++ -I/boost/ -o func func.cpp
我得到错误
In file included from func.cpp:28:
boost/multiprecision/cpp_int.hpp:11:10: fatal error: boost/cstdint.hpp: No such file or directory
11 | #include <boost/cstdint.hpp>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
似乎 cpp_int.hpp 是#include-ing 一个位于其上方一个目录的标头(在我复制的 boost 文件夹内,我检查过,它就在那里)。我可能缺少一些基本的东西,因为我在尝试使用其他包时遇到了相同类型的错误。