社区
工具平台和程序库
帖子详情
为什么boost要编译啊?
gemo
2010-01-19 01:56:56
为什么不全部用头文件呢
这个问题困扰着我。。。
...全文
671
20
打赏
收藏
为什么boost要编译啊?
为什么不全部用头文件呢 这个问题困扰着我。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suanyuan
2010-03-01
打赏
举报
回复
有 compiler 支援編譯 template
nscboy
2010-02-28
打赏
举报
回复
感觉主要是为了加快后期适用boost的工程的编译速度.
否则的话,一个几行的程序都要编译半天.也是一件很难忍受的事情.
这要不适用预编译的化,要白白浪费多少时间啊.这简直等于谋杀生命啊
Bruce Jia(上海)
2010-02-02
打赏
举报
回复
有的模块先编译一下会节省很多时间的,比如thread
某某9
2010-02-02
打赏
举报
回复
哦。原来!
mitterand
2010-01-29
打赏
举报
回复
就算编译后,也要用头文件吧。
就算是C++自己的库也要用头文件。
再说BOOST很多库是用其他语言编译的。
[Quote=引用 2 楼 gemo 的回复:]
LS的 我是说boost为什么不全部用头文件
[/Quote]
mitterand
2010-01-29
打赏
举报
回复
就算编译后,也要用头文件吧。
就算是C++自己的库也要用头文件。
再说BOOST很多库是用其他语言编译的。
[Quote=引用 2 楼 gemo 的回复:]
LS的 我是说boost为什么不全部用头文件
[/Quote]
fo1_sky
2010-01-29
打赏
举报
回复
[Quote=引用 13 楼 wangxing221 的回复:]
为什么不把编译好的东西放出来呢?省的每个人都要重新编译
[/Quote]
这就是开放源代码了,不然,还谈什么源码开放
wangxing221
2010-01-28
打赏
举报
回复
为什么不把编译好的东西放出来呢?省的每个人都要重新编译
luoweisong
2010-01-26
打赏
举报
回复
boost编译之后,使用boost库,再编译自己的cpp文件时就快得多了
linglongyouzhi
2010-01-22
打赏
举报
回复
貌似有些东西是平台相关的
jackyjkchen
2010-01-19
打赏
举报
回复
再者,从模块化编程的角度,我们通常不希望所有的代码都集中在一块,可能一个独立的功能就希望做成一个单独的库,声明统一和固定下来,以后可以就单独修改某个库的实现而不用全部重新编译。
举个简单例子,微软的C标准库是以dll形式提供的,假如某个库函数有bug,那么只要微软修复了这个bug,那你的程序不用重新编译,就自动也修复了bug
jackyjkchen
2010-01-19
打赏
举报
回复
[Quote=引用 8 楼 gemo 的回复:]
重复包含的问题 用条件编译可否解决?
为什么一定要编译成二进制的库呢?boost中绝大部分类都只有hpp 都不能编译成二进制的库啊
[/Quote]
之所只有hpp,是因为他们是泛型类,使用模板,模板无法分离编译,只能放在hpp里。
至于二进制库的问题,从纯技术角度说将少则几十个多则甚至几十万个源文件编译为一个lib、dll、so、a文件供人调用要清爽得多;
从商业角度看,如果没有二进制库dll,微软的所有sdk、api都以源文件形式提供,他的商业机密如何保护?
gemo
2010-01-19
打赏
举报
回复
重复包含的问题 用条件编译可否解决?
为什么一定要编译成二进制的库呢?boost中绝大部分类都只有hpp 都不能编译成二进制的库啊
jackyjkchen
2010-01-19
打赏
举报
回复
[Quote=引用 6 楼 gemo 的回复:]
声明和实现是否分开 就能代码风格的好坏吗?
java和c#都是不分开的好像
[/Quote]
C#和java没有头文件,当然不分。
C++如果不分的话会有许多严重的问题,比如重复包含,比如无法编译二进制库(没有cpp文件)。
一定要脱离一个程序只有一个cpp的那种helloworld程序的思想
gemo
2010-01-19
打赏
举报
回复
声明和实现是否分开 就能代码风格的好坏吗?
java和c#都是不分开的好像
jackyjkchen
2010-01-19
打赏
举报
回复
[Quote=引用 2 楼 gemo 的回复:]
LS的 我是说boost为什么不全部用头文件
[/Quote]
看来是个新手,对于非泛型(模板)编程,生命和实现应该分开,如果说全用h文件,boost将是一个代码风格极差没人用的垃圾库
gemo
2010-01-19
打赏
举报
回复
比如?全局变量?
taodm
2010-01-19
打赏
举报
回复
因为不是所有东西都可以纯用头文件。
gemo
2010-01-19
打赏
举报
回复
LS的 我是说boost为什么不全部用头文件
jackyjkchen
2010-01-19
打赏
举报
回复
也可以不编译,你把需要的boost的Cpp文件全部加进工程里或makefile里,在使用时再编译。
相信你这样玩过一次以后就不想再玩第二次
boost
自动
编译
脚本
boost
的自动
编译
脚本。能将
boost
自动
编译
成vs2008、vs2010的32位和64位版本库。最好能配合great3779的博文《
编译
boost
(
boost
_1_49_0)》一起使用。
[②C++
Boost
]:
Boost
库
编译
,ARM交叉
编译
方法
Boost
库
编译
方法,使用ARM交叉
编译
工具
Boost
库
编译
指南
Linux下
Boost
库
编译
指南
boost
全平台
编译
方法
0.通用规则
boost
自带一套
编译
工具bjam,bjam本身是跨平台的,并且也要自行
编译
出来。在
boost
目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来
编译
*nix和windows下的bjam。bootstrap脚本可以传入参数,以在
编译
...
【交叉
编译
】
boost
Boost
.Build 支持与 gcc 和 msvc 工具集进行交叉
编译
。有关允许的操作系统名称的完整列表,请参阅 target-os 功能的文档。如果要面向与主机不同的操作系统,则需要另外指定。使用 gcc 时,首先需要在。
工具平台和程序库
24,860
社区成员
27,333
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章