windows7下编译boost1.46.1库,生成32位库文件
2017-07-13 08:49
281 查看
windows7下编译boost1.46.1库,生成32位库文件
前提已经下载boost1.46.1库,并且已经安装VS2010。1. 从网上下载boost-1.46.1库,并解压出来,查看文件夹中会有一个文件名为:bootstrap.bat。
2. 使用VS2010自带的命令行工具,如果要编译成32位,那么就使用x86对应的命令提示符,如果要编译64位,就使用x64命令提示符。
3. 打开该命令提示符后,进入我们已经解压好的boost1.46.1库目录下,
输入执行:bootstrap.bat
执行完该句之后该,就会直接生成一个名为bjam.exe的文件。后面的命令就是针对bjam.exe执行。
4. 在命令提示符里面输入如下命令:
bjam stage --toolset=msvc-10.0 --without-graph --without-graph_parallel --stagedir="E:\boost\boost_1_46_1\bin\release" link=static runtime-link=shared runtime-link=static threading=multi release
注意:该命令,不需要一些其他的依赖文件,比如:1. Regex所需Unicode支持类库 -- ICU 。 2. Graph所需的XML处理类库 --Expat。3. MPI所需MPI类库。
下面详细解释一下每个参数的含义:
stage/install:stage 表示只生成库(dll和lib),install还会生成包含头文件的include目录。推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录,所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。
toolset:指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-10.0(VS20010)等。
without/with:选择不编译/编译哪些库,不需要的可以without掉。这可以根据各人需要选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,要先下载python。
stagedir/prefix:stage 时使用stagedir,install时使用prefix,表示编译生成文件的路径。(说明:使用install时,include文件目录结构是这样的E:\boost\boost_1_46_1\include\boost_1_46_1\boost,路径很累赘,可以去掉中间一层\boost_1_46_1。不管怎样,个人觉得还是使用stage好,一方面是快,另一方面也没这么纠结的目录)
build-dir:编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录下,目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。
link:生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。
runtime-link:动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。一般link只选static的话,只需要编译2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static。
threading:单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。
debug/release:编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。
相关文章推荐
- 通过PHP5.6源代码在WINDOWS 7下进行编译生成(最详细步骤)
- linux 与 windows 编译 生成文件对比
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- windows下的使用别人编译好的库文件进行安装xgboost
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用
- Boost在Linux和windows下的编译 32位 64位
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- windows下面编译protobuf,生成.a文件供android NDK使用
- Windows环境下编译Assimp库生成Android可用的.so文件
- 关于windows下QT5.X编译mysql后找不到生成文件的问题
- windows 下boost 64 位和32位库的编译编译
- VS2013编译32位与36位的sqlite,再CMAKE生成osgearth加载mbtiles文件需要的osgdb_osgearth_mbtiles.dll
- Solaris编译Boost生成so文件出错:failed gcc.link.dll解决方法
- 在windows上编译chez scheme代码生成独立可执行文件
- pyinstaller 在Windows下Python3.6编译生成exe文件
- mpi编译Boost生成so文件出错:failed gcc.link.dll解决方法
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- Windows 上 使用CMake-GUI 软件生成 zlib 和 png 库的编译文件,然后使用VS2010编译
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译