首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用累加器链接时未找到Boost Multiprecision符号

使用累加器链接时未找到Boost Multiprecision符号
EN

Stack Overflow用户
提问于 2021-04-04 22:39:49
回答 1查看 41关注 0票数 1

您好,我正在使用Boost Multiprecision库和Boost累加器。当我链接到CMakeLists时,它给了我一个参考问题

代码语言:javascript
复制
Undefined symbols for architecture x86_64:
  "___gmpf_add", referenced from:
      void boost::multiprecision::backends::eval_add<50u, 50u>(boost::multiprecision::backends::gmp_float<50u>&, boost::multiprecision::backends::gmp_float<50u> const&) in historicQuotePropogationController.cpp.o
  "___gmpf_clear", referenced from:
      boost::multiprecision::backends::detail::gmp_float_imp<50u>::~gmp_float_imp() in historicQuotePropogationController.cpp.o
  "___gmpf_get_prec", referenced from:
      boost::multiprecision::backends::detail::gmp_float_imp<50u>::gmp_float_imp(boost::multiprecision::backends::detail::gmp_float_imp<50u> const&) in historicQuotePropogationController.cpp.o
  "___gmpf_init2", referenced from:
      boost::multiprecision::backends::gmp_float<50u>::gmp_float() in historicQuotePropogationController.cpp.o
      boost::multiprecision::backends::detail::gmp_float_imp<50u>::gmp_float_imp(boost::multiprecision::backends::detail::gmp_float_imp<50u> const&) in historicQuotePropogationController.cpp.o
  "___gmpf_mul", referenced from:
      void boost::multiprecision::backends::eval_multiply<50u, 50u, 50u>(boost::multiprecision::backends::gmp_float<50u>&, boost::multiprecision::backends::gmp_float<50u> const&, boost::multiprecision::backends::gmp_float<50u> const&) in historicQuotePropogationController.cpp.o
  "___gmpf_set", referenced from:
      boost::multiprecision::backends::detail::gmp_float_imp<50u>::gmp_float_imp(boost::multiprecision::backends::detail::gmp_float_imp<50u> const&) in historicQuotePropogationController.cpp.o
ld: symbol(s) not found for architecture x86_64

这就是我正在使用它的类

代码语言:javascript
复制
    class StatsControllerManager {
    public:
        bool propogateNewStats(Model::Stat stats);
        vector<Model::Stat> propogateNewStats(vector<Model::Stat> stats);
    private:
        void initialize(std::string name, bool backpopulate = false);
        std::unordered_map<std::string, Controller> historicStats;
    };

有人能帮我指出正确的方向吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-05 00:37:21

根据所使用的类型而定

  • libgmp
  • libmpfr

链接。请参阅https://www.boost.org/doc/libs/1_75_0/libs/math/doc/html/math_toolkit/high_precision/use_mpfr.html

这些都是非常普遍的,但是如果你不想依赖,还有cpp_*类型(cpp_int,cpp_bin_float,cpp_dec_float),它们是非常简单的替代品,因为所有这些后端都使用相同的前端(number<>)。再说一遍:docs

后四个有一些许可证限制;只有在使用cpp_float后端时的Boost.Multiprecision可以提供无限制的Boost许可证。

目前,免费许可的价格略低速度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66942368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档