社区
工具平台和程序库
帖子详情
boost的编译问题??
rwxybh
2005-12-06 12:37:04
使用过的都知道boost需要首先编译成若干DLL,而后方可使用.
但是为何需要先编译呢,有些直接引用头文件就可使用,但是有些库必须编译
那么这编译和不编译之间的本质区别在什么地方呢??
请高手指点,谢谢
...全文
401
10
打赏
收藏
boost的编译问题??
使用过的都知道boost需要首先编译成若干DLL,而后方可使用. 但是为何需要先编译呢,有些直接引用头文件就可使用,但是有些库必须编译 那么这编译和不编译之间的本质区别在什么地方呢?? 请高手指点,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rwxybh
2005-12-12
打赏
举报
回复
来者有分,呵呵
yuanchuang
2005-12-06
打赏
举报
回复
我不知道boost是什么,嘻嘻。
头文件是系统给的静态库,你自己定义的头文件就要编译成静态库才能用,所以要编译
不知这是不是你要的答案。
积木
2005-12-06
打赏
举报
回复
共享库 .dll就是为了这个而生的。如果你的编译目标是共享版本那就没有问题,但是如果你使用静态链接那就完了。每个编译器的静态链接库的编译方法都不一样。。。
你只好针对不同的版本编译不同的lib....
rwxybh
2005-12-06
打赏
举报
回复
多谢版主回答,我正在想如何不预先编译boost而直接引用就能使用,这样看上去编译时满了,但是不用在切换编译器的时候更换库的版本了,而且库版本众多极易搞混
不知道boost能不能这么用??就目前来看,还是太麻烦了
积木
2005-12-06
打赏
举报
回复
你说的使者个意思吗:编译为lib和dll只是可选的,不编译也可直接引用源码,只不过编译效率低而已.
也就是说boost的库可以直接引用,而不是必须编译(可能需要在源码上略作修改)
===============================================================================
可以象你说得那么理解,这都是看你自己的选择…… :)
编译成库是为了提高效率,而编译成.dll或者.so是为了提高代码的可插拔性,例如一些常用的库,你不是打算每一个工程都从底层库的编译开始吧。所有的这一切都说明了库是非常重要的,我认为boost应该尽可能的编译成库的形式给大家使用,但是以现在的情况,是非常难的,可以说几乎不可能。
rwxybh
2005-12-06
打赏
举报
回复
嗯?我什么时候说模板一定要预编译才能用?事实上你根本就没有办法预先编译模版啊。那会有链接错误的。
因为boost大量使用了模版,所以很多组件根本就不需要编译,直接引用头文件就可以用了,那是因为代码就在头文件里面嘛,但是这样做好吗?我想没有一个程序员愿意每天都重新编译一次底层的库吧。更不愿意自己的程序里面包含了很多可能永远用不上的代码吧(特指没有动态链接的情况)。
所以lib和dll程度越高,这个库的可用性就回相对提高。这样节省开发时间,节省运行开销。
===============================================================================
你说的使者个意思吗:编译为lib和dll只是可选的,不编译也可直接引用源码,只不过编译效率低而已.
也就是说boost的库可以直接引用,而不是必须编译(可能需要在源码上略作修改)
积木
2005-12-06
打赏
举报
回复
使用模板不一定非得编译才能用,比如A写一个加法模板,B直接引用A的头文件即可,并不一定非得把A的模板编译以后B才能用,而像Boost的Thread库必须编译才能使用
这不是本质所在
========================================================================
嗯?我什么时候说模板一定要预编译才能用?事实上你根本就没有办法预先编译模版啊。那会有链接错误的。
因为boost大量使用了模版,所以很多组件根本就不需要编译,直接引用头文件就可以用了,那是因为代码就在头文件里面嘛,但是这样做好吗?我想没有一个程序员愿意每天都重新编译一次底层的库吧。更不愿意自己的程序里面包含了很多可能永远用不上的代码吧(特指没有动态链接的情况)。
所以lib和dll程度越高,这个库的可用性就回相对提高。这样节省开发时间,节省运行开销。
rwxybh
2005-12-06
打赏
举报
回复
怎么不见高手来回答啊??
rwxybh
2005-12-06
打赏
举报
回复
在boost中,很多代码都是用模版写的。所以都写在了头文件里面根本不需要编译苦就可以使用。实际上我觉得这是一种无奈之举,因为这样大大增加了编译器的负担,你也不想编译一个程序动辄20分钟吧。
但是很多库并不是模版写的,这就很好,用预先编译好的模块,如果用动态链接就更好了,我运行时的消耗都小了。何乐而不为。
=========================================================================
使用模板不一定非得编译才能用,比如A写一个加法模板,B直接引用A的头文件即可,并不一定非得把A的模板编译以后B才能用,而像Boost的Thread库必须编译才能使用
这不是本质所在
积木
2005-12-06
打赏
举报
回复
在boost中,很多代码都是用模版写的。所以都写在了头文件里面根本不需要编译苦就可以使用。实际上我觉得这是一种无奈之举,因为这样大大增加了编译器的负担,你也不想编译一个程序动辄20分钟吧。
但是很多库并不是模版写的,这就很好,用预先编译好的模块,如果用动态链接就更好了,我运行时的消耗都小了。何乐而不为。
boost
自动
编译
脚本
boost
的自动
编译
脚本。能将
boost
自动
编译
成vs2008、vs2010的32位和64位版本库。最好能配合great3779的博文《
编译
boost
(
boost
_1_49_0)》一起使用。
ubuntu下
boost
编译
ubuntu下
boost
编译
首先从
boost
官方网址官网下载需要的
boost
版本,然后进行下面的操作: 1: tar -zxvf
boost
_1_70_0.tar.gz -C / 2: cd
boost
_1_70_0 3: ./bootstrap.sh --with-libraries=all --with-toolset=gcc 4...
Socket编程系列之5:
Boost
开发及ASIO异步网络聊天室编程实
---------------------------------------------------Socket编程系列之5:
Boost
开发及ASIO异步网络聊天室编程实战我将大龄大家从
Boost
小白入门基础知识开始,然后搭建开发环境,并亲手
编译
源码。 然后详细分析
Boost
...
boost
编译
(windows)
boost
编译
(windows)
boost
编译
其
编译
方法和原来的
编译
方法基本上是一致的,主要改变包括1.34.0以来bjam的toolset所提供的参数名称的改变(具体参见《
boost
1.34.0
编译
日志》)外,还包括bjam的
编译
默认选项的变化,在1.35.0之前的版本默认
编译
时会...
工具平台和程序库
24,854
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章