win7下编译boost库总结

很多情况下都会用到boost库,之前可能通过boostpro直接下载编译好的二进制库,不过遗憾的是目前不再可用了。

下面给出手动编译的过程说明,以版本1.44为例进行说明;

第一步,执行bootstrap.bat,将会在同目录下生成bjam.exe.后面的编译将依赖于bjam.exe

注:bjam.exe --show-libraries可以看到可以编译的库的名称,根据需要进行适当的挑选,也可以全部编译,不过会需要较长时间,建议选择编译自已需要的

第二步,开始编译
bjam.exe toolset=msvc-10.0 --build-type=complete address-model=64 --with-serialization --with-system --with-date_time --with-regex --with-filesystem --

stagedir="E:\try\boost_1_44_0\lib64" stage

bjam.exe toolset=msvc-10.0 --build-type=complete address-model=64 --with-serialization --with-system --with-date_time --with-regex --with-filesystem --

prefix="E:\try\boost_1_44_0\lib64" install

说明:以前只编译了serialization/system/date_time/regex/filesystem五个库

注:
stage/install: stage表示只生成库(dll和lib),生成的文件放到stage的子目录下,由参数--stagedir可指定路径;install还会生成包含头文件的include目录,生成的文件目

录由参数--prefix指定

address-model:生成32/64位的库,不使用时使用默认,生成32位的库文件,若要生成64位的库需显示指定address-model=64

toolset:指定C++的编译器[ VS2008对应--toolset=msvc-9.0,vs2010对应--toolset=msvc-10.0 ],其它的可查找相关的参考说明

--build-type: 编译类型,生成何种方式的库,发布版/调试版等,建议选择complete,生成调试版和发布版的,不过所需的时间稍长一些

link:创建动态[  link=shared ]还是静态[link=static]的库.

runtime-link:指定C++运行时库是静态[ runtime-link=static ]链接还是动态[ runtime-link=shared ]链接

threading:单[  threading=single ]/多线程[  threading=multi ]编译。

without/with:选择不编译/编译哪些库

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    显示需要编译的库名称

你可能感兴趣的:(boost)