boost编译成功,得到一大堆库,那位兄弟给解释一下?

morefaster 2005-03-21 07:31:02
编译结束后,在“C:\Boost\lib”里面有很多lib和dll文件,同时,在“C:\boost_1_32_0\bin\boost\libs”里面也有很多lib和dll文件。我有点迷惑,这些文件的区别是什么呢?

以“boost_date_time-vc71-mt-1_32.dll”为例,在“C:\Boost\lib”中的是否可以认为是release版本的库,而“C:\boost_1_32_0\bin\boost\libs\date_time\build\boost_date_time.dll”下是动态库,“C:\boost_1_32_0\bin\boost\libs\date_time\build\libboost_date_time.lib”下是静态库?但是在“libboost_date_time.lib\vc-7_1”目录下的debug和release目录下面,分别(以debug为例)有“debug\runtime-link-static”,“debug\runtime-link-static\threading-multi”,“debug\threading-multi”,请问这3个目录下的库有什么区别?

我是个初学者,请教了。
...全文
629 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2005-03-28
  • 打赏
  • 举报
回复
你看看 VC 的工程选项以及 MSDN,里面会有选择链接 CRT 的不同方式。如果你以某种方式链接 CRT,就必须链接相应方式编译得到的 boost 库。
morefaster 2005-03-28
  • 打赏
  • 举报
回复
老大,帮人帮到底吧,再解释一下下面这3个库具有怎么回事吧?
静态库的debug模式下的静态连接C++ runtime library 的版本
静态库的debug模式下的静态连接C++ runtime library 的多线程版本
静态库的debug模式下的多线程版本
allen_zhaozhencn 2005-03-25
  • 打赏
  • 举报
回复
1 c:\boost_1_32_0\bin\boost\libs 这个目录是是编译生成boost后生成的专门用于存放各种版本lib与dll的地方

boost/lib 是boost库各子库的相关源码,文档,使用示例


3 debug
|-runtime-link-static(libboost_date_time-vc71-sgd-1_32.lib) //静态库的debug模式下的静态连接C++ runtime library 的版本
| |-threading-multi(libboost_date_time-vc71-mt-sgd-1_32.lib) //静态库的debug模式下的静态连接C++ runtime library 的多线程版本

|-threading-multi(libboost_date_time-vc71-mt-gd-1_32.lib) ////静态库的debug模式下的多线程版本




4 我编译所生成的lib与dll都放在boost/bin目录中,是不是你编译时所使用路径设置有问题。
morefaster 2005-03-24
  • 打赏
  • 举报
回复
up
healer_kx 2005-03-23
  • 打赏
  • 举报
回复
是啊, 静态的, 动态的, debug的, release的。
包含的时候倒是挺麻烦的。。。
allen_zhaozhencn 2005-03-23
  • 打赏
  • 举报
回复
分别是debug和release模式下的“静态库”与 "多线程版本“
morefaster 2005-03-23
  • 打赏
  • 举报
回复
那位老大给解释一下 ,
morefaster 2005-03-23
  • 打赏
  • 举报
回复
或者说在什么情况下连接那个库,一大堆的库怎么用,彼此都有什么区别啊。
morefaster 2005-03-23
  • 打赏
  • 举报
回复
to zhaozhencn(FlyingDonkey)
不好意思,我还是不明白。可能我的问题没有表达清楚,我重新整理一下(顺便把分数提高到100分):

问题(1):boost/lib里面的*.dll和*.lib跟c:\boost_1_32_0\bin\boost\libs里面的*.dll和*.lib文件是什么关系?
boost/lib里面的文件是不是由c:\boost_1_32_0\bin\boost\libs对应的文件拷贝而来?

问题(2):以date_time为例,boost/lib目录下多出了boost_date_time-vc71-mt-gd.lib,boost_date_time-vc71-mt.lib两个文件,另外4个boost_date_time-vc71-mt-gd-1_32.lib/dllboost_date_time-vc71-mt-1_32.lib/dll都可以在bin目录下找到。
这两个文件的作用是什么?

问题(3):以date_time的debug静态库为例:
debug
|-runtime-link-static(libboost_date_time-vc71-sgd-1_32.lib)
| |-threading-multi(libboost_date_time-vc71-mt-sgd-1_32.lib)
|-threading-multi(libboost_date_time-vc71-mt-gd-1_32.lib)

这3个lib有什么区别啊?
问题(4):boost/lib里面date_time的静态库也要比G:\boost_1_32_0\bin\boost\libs\date_time\build\libboost_date_time.lib目录下的lib库要多,多出的那几个lib有什么作用?

我刚刚看boost,还没有什么概念,请教了。

无以为报,百分相赠。
allen_zhaozhencn 2005-03-23
  • 打赏
  • 举报
回复
静态库 : (包含debug/release模式), 而debug与release又各分为runtime-link-static 与threading-multi两种版本。

动态库(含DLL): (包含debug/release模式), 而debug与release又各分为runtime-link-static 与threading-multi两种版本。

在使用时,要根据所使用的boost库类型来决定如何连结C++ runtimeclass library
morefaster 2005-03-23
  • 打赏
  • 举报
回复
还是有点不明白,以date_time为例:boost/lib和C:\boost_1_32_0\bin\boost\libs这两个目录中的库有什么关系呢?是不是吧C:\boost_1_32_0\bin\boost\libs中的库拷贝到boost/lib中了?

但是,boost/lib下有:boost_date_time-vc71-mt-gd-1_32.lib/dll(对于dll的debug版?),boost_date_time-vc71-mt-1_32.lib/dll(对应dll的release版?)还有下面boost_date_time-vc71-mt-gd.lib,boost_date_time-vc71-mt.lib是做什么的?

静态库也是boost/lib目录下也要多几个文件,真的搞不懂啊。


还有,在目录
debug
|-runtime-link-static(libboost_date_time-vc71-sgd-1_32.lib)
| |-threading-multi(libboost_date_time-vc71-mt-sgd-1_32.lib)
|-threading-multi(libboost_date_time-vc71-mt-gd-1_32.lib)

这3个lib有什么区别啊?

并且boost/lib下关于date_time的lib库明显多了好几个,怎么回事啊?

盼望高手给予解答。

谢谢。
morefaster 2005-03-22
  • 打赏
  • 举报
回复
up一下

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧