boost编译用bjam

还记得是这样的:

下载boost库,然后下载bjam.exe,放在boost库的安装目录下,因为需要用到boost-build.jam,所以不能随便放置。

然后你就可以进入控制台去输入指令了:

 

bjam --show-libraries 可以看见需要编译的库的名称

然后就可以开始编译你想要的库了,下面是典型的格式

F:/sdk/boost>bjam --toolset=msvc-8.0 --with-date_time --with-thread
--link=static --threading=multi --runtime-link=shared debug stage

 

为了方便,你还可以这样:

F:/sdk/boost>bjam --with-date_time --build-type=complete --toolset=msvc-8.0 stage

注意,--build-type=complete表示生成debug release static shared的各种版本

 

还有一个非常需要注意的地方,我在一次编译的时候遇见过很变态的问题,由于安装了VS2008,所以我想用VC9来编译,结果VC9的设置似乎与环境变量冲突,在打开命令行工具的时候会提示:此时不应有:<此处为系统的所有环境变量>。这个奇怪的问题很可能是由于环境变量里的路径过长或包含不该有的符号而导致的,但奇怪的是,VS2005并没有这个冲突问题。所以,这时候如果要编译boost的话只有两条路走:1、搞定VS2008的冲突,重装环境变量里路径过长的程序。2、用VS2005的命令行工具去编译。顺带一提的是,这时候最好不要用系统中的cmd,而是在开始->程序->VS2005->工具->命令提示里执行bjam的工作。

 

 

 

其他参考:

bjam参数
--build-dir=<builddir>编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了)
--stagedir=<stagedir>存放编译后库文件的路径,默认是stage
--build-type=complete编译所有版本,不然只会编译一小部分版本(确切地说是相当于:variant=release, threading=multi;link=shared|static;runtime-link=shared)
variant=debug|release决定编译什么版本(Debug or Release?)
link=static|shared决定使用静态库还是动态库。
threading=single|multi决定使用单线程还是多线程库。
runtime-link=static|shared决定是静态还是动态链接C/C++标准库。
--with-<library>只编译指定的库,如输入--with-regex就只编译regex库了。
--show-libraries显示需要编译的库名称

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值