首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >太多的libboost_*.lib

太多的libboost_*.lib
EN

Stack Overflow用户
提问于 2015-06-29 20:27:42
回答 1查看 152关注 0票数 1

我已经从http://boost.teeks99.com/下载了boost 1.58.0 (预编译,x86,VC12.0)并安装到C:\local\boost_1_58_0 (我还尝试使用msvc-12.0自己编译源代码,并得到了相同的结果。

问题:例如,我看到太多相同库的libboost*.lib

ls -l libboost_math_*返回:

代码语言:javascript
复制
libboost_math_c99f-vc120-mt-1_58.lib
libboost_math_c99f-vc120-mt-gd-1_58.lib
libboost_math_c99f-vc120-mt-s-1_58.lib
libboost_math_c99f-vc120-mt-sgd-1_58.lib
libboost_math_c99f-vc120-s-1_58.lib
libboost_math_c99f-vc120-sgd-1_58.lib
libboost_math_c99l-vc120-mt-1_58.lib
libboost_math_c99l-vc120-mt-gd-1_58.lib
libboost_math_c99l-vc120-mt-s-1_58.lib
libboost_math_c99l-vc120-mt-sgd-1_58.lib
libboost_math_c99l-vc120-s-1_58.lib
libboost_math_c99l-vc120-sgd-1_58.lib
libboost_math_c99-vc120-mt-1_58.lib
libboost_math_c99-vc120-mt-gd-1_58.lib
libboost_math_c99-vc120-mt-s-1_58.lib
libboost_math_c99-vc120-mt-sgd-1_58.lib
libboost_math_c99-vc120-s-1_58.lib
libboost_math_c99-vc120-sgd-1_58.lib
libboost_math_tr1f-vc120-mt-1_58.lib
libboost_math_tr1f-vc120-mt-gd-1_58.lib
libboost_math_tr1f-vc120-mt-s-1_58.lib
libboost_math_tr1f-vc120-mt-sgd-1_58.lib
libboost_math_tr1f-vc120-s-1_58.lib
libboost_math_tr1f-vc120-sgd-1_58.lib
libboost_math_tr1l-vc120-mt-1_58.lib
libboost_math_tr1l-vc120-mt-gd-1_58.lib
libboost_math_tr1l-vc120-mt-s-1_58.lib
libboost_math_tr1l-vc120-mt-sgd-1_58.lib
libboost_math_tr1l-vc120-s-1_58.lib
libboost_math_tr1l-vc120-sgd-1_58.lib
libboost_math_tr1-vc120-mt-1_58.lib
libboost_math_tr1-vc120-mt-gd-1_58.lib
libboost_math_tr1-vc120-mt-s-1_58.lib
libboost_math_tr1-vc120-mt-sgd-1_58.lib
libboost_math_tr1-vc120-s-1_58.lib
libboost_math_tr1-vc120-sgd-1_58.lib

我的问题:

  1. 为什么一个库有这么多库文件?(36个文件用于libboost_math,4个libboost_atomic,6个libboost_iostreams等等)
  2. 为什么没有一个libboost_math.lib,libboost_atomic,.档案?
  3. 如果我想使用boost_math,我应该选择哪个库?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-30 01:41:47

Boost.Math包含许多部分,它们不共享同一个库文件。

库的文件名描述了它构建的目的。

例如,

  • vc120:它是为microsoft C++ 12.0 (a.k.a )构建的。2013年)
  • mt:将链接到多线程版本的C运行时。(libcmt.lib)
  • 将链接到共享C运行时的多线程版本。(msvcrt.lib)
  • mt:将链接到多线程调试版本的C运行时。(libcmtd.lib)
  • mt:将链接到共享C运行时的多线程调试版本。(msvcrtd.lib)
  • 将链接到共享C运行时的单线程版本。(现在看来VC不包含一个吗?(我不确定。)
  • sgd:将链接到共享C运行时的单线程调试版本。(现在看来VC不包含一个吗?(我不确定。)

如果您正在使用Boost与MicrosoftVisualC++,您将受益于自动链接功能。设置附加的库目录,链接器(确切地说,boost标头指导链接器)将为您链接正确的版本。

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

https://stackoverflow.com/questions/31124947

复制
相关文章

相似问题

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