如何在WINDOWS下编译BOOST C++
cheungmine
2008-6-25
 
写出来,怕自己以后忘记了,也为初学者参考。使用VC8.0和boost1.35.0。
 
1)下载boost
这是它的下载页面,需要下载2个东西:
Packaged Releases
VERSION 1.35.0
Boost Jam 3.1.16
 
你需要在每个条目下面找到Details | Download字样,点击Download,进入下载页。可是遗憾的是sourceforge站点被封了,所以通常你是无法下载的。(我诅咒封这个站点的人)。因此有必要使用某些特殊的工具来穿透这个封锁。我下载的是这个:
boost_1_35_0.tar.gz
boost-jam-3.1.16.zip
 
2)下载Python2.5.2
在这个页面点击Python2.5.2 Windows Installer
得到一个Python2.5.2.msi后,即可点击安装。我安装在C:/OpenSource/Python25
创建一个批处理文件:pt.bat,内容如下:
set path=C:/OpenSource/Python25
Python
 
然后启用命令行工具(运行cmd.exe),进入pt.bat所在目录,键入pt.bat
如果你看到>>>的提示符号,说明python安装成功。
 
3)编译boost-jam
解压boost_1_35_0.tar.gz,到目录boost_1_35_0。我的是在C:/OpenSource/ boost_1_35_0。这样你在C:/OpenSource/ boost_1_35_0/下就能发现boost-build.jam这个文件。
 
解压boost-jam-3.1.16.zip,然后在目录下双击build.bat,即进行编译。编译结束,可以发现生成了bin.ntx86/bjam.exe。
我们要的就是这个bjam.exe,把它复制到boost_1_35_0目录下,在这个目录下有boost-build.jam文件。
 
4)完全编译boost_1_35_0
编译全部库。虽然你可以只编译一部分,但是还是全部编译,省的以后麻烦。为此你需要编写一个批处理文件,我命名它为boost.bat:
SET MSVC_ROOT="F:/Microsoft Visual Studio 8/VC"
SET VISUALC="F:/Microsoft Visual Studio 8/VC"
SET JAM_TOOLSET=VISUALC
SET PYTHON_ROOT=C:/OpenSource/Python25
SET PYTHON_VERSION=2.5.2
SET PATH=C:/OpenSource/boost_1_35_0
 
你要保证你的路径是正确设置的。然后把这个文件保存到C:/OpenSource下面。(其实位置不重要)。然后启用命令行工具(cmd)。类似地输入下面的命令(<Enter>表示回车):
C:/OpenSource>boost.bat<Enter>
C:/OpenSource>cd boost_1_35_0<Enter>
C:/OpenSource/boost_1_35_0>bjam -sBOOST_ROOT=. -sTOOLS=msvc<Enter>
 
然后你就等待吧。一大堆的警告是不要管的。估计等1小时不到的时间,就完全编译好了。你可以发现在C盘出现了:
C:/Boost
它下面有Include和Lib目录。你可以使用这个C:/Boost,使用它的静态或动态库。也可以使用C:/OpenSource/boost_1_35_0下的源代码。
 
5)结束也是开始BOOST之旅
好了,开始你的boost之旅吧。我用它的graph库实现了最短路径,整个上海的路网,4万多条路段,任意2点查询最短路径,不超过3秒就OK。内存消耗在30M左右。从此我喜欢上了boost。
最新的BOOST提供了C++和Python的接口,这也是我要用它的理由。一个简单的比喻,C++好比COM,Python好比JavaScript,如果你认为JavaScript调用COM可以产生强大的威力,是原子弹的话,那么Python调用C++则是氢弹。关于Boost.Python的知识,参考:
当然,我还是觉得上述过程太复杂,在Windows上使用Boost,你可以完全忽略上面的过程,到下面这个链接里直接取得一个下载软件,它会给你下载你要的包:

如何在WINDOWS下编译BOOST C++库 .的更多相关文章

  1. windows下编译boost for android

    env: windows xp 32 bit mingw official  NDK 1. 下载源代码    地址是 :http://sourceforge.net/projects/boost/fi ...

  2. windows下编译Boost库

    下载源码 boost_1_66_0.7z 生成编译工具 D:\Project\boost_1_66_0> bootstrap.bat 配置Python环境变量(使用VS2017自带的32位pyt ...

  3. windows下编译Boost

    当前boost最新版本为1.55,下载地址:http://sourceforge.net/projects/boost/files/boost/1.55.0/或者从官网(www.boost.org)下 ...

  4. windows 下编译php扩展库pecl里的扩展memcache

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...

  5. 《Lucene in Action第二版》学习总结---如何在Windows下编译luceneinAction2Edition源码包

    1. 下载此源码包,位置是: www.manning.com/hatcher3,得到:lia2e.tar.gz,然后解压缩得到目录:lia2e,为了以后能辨识,我将此目录改名为:luceneinAct ...

  6. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  7. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  8. Windows下编译memcached-1.4.5(32bit和64bit)

    1.简介 Memcached 是一个高性能的分布式内存对象缓存系统.它通过将数据缓存在内存中来减少对数据库和文件系统的访问,减轻数据库及操作系统的负担,提高应用系统的速度. 目前已经很多系统应用了me ...

  9. Windows下编译OpenSSL(使用VS2013)

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

随机推荐

  1. SQL按照日、周、月、年统计数据

    写sql语句分别按日,星期,月,季度,年统计销售额 --按日 select sum(consume),day([date]) from consume_record where year([date] ...

  2. iMAC——全新重装Mac系统

    在参考网上重装Mac系统教程的时候,感觉这篇教程挺不错: http://www.iplaysoft.com/osx-yosemite-usb-install-drive.html (此教程终端命令处需 ...

  3. C++函数模板本质-学习入门

    template<typename T> void mySwap(T &a, T &b) { T c; c = a; a = b; b = c; } int main() ...

  4. 【译】 Node.js v0.12的新特性 -- 性能优化

    原文: https://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/ January 21, 2014/in Comm ...

  5. From MSI to WiX, Part 4 - Features and Components by Alex Shevchuk

    Following content is directly reprinted from : http://blogs.technet.com/b/alexshev/archive/2008/08/2 ...

  6. (四)Qt之右键菜单

    1.右键菜单创建和显示 作为一种交互性强.使用方便的右键菜单在程序中是非常常用的,在Qt中可以轻松的实现. QMenu menu; //添加菜单项,指定图标.名称.响应函数 menu.addActio ...

  7. SVN之文件同步更新

    在SVN的实际使用上,我有这样的一个需求,同一份保存在SVN库的文件,要求取出在不同的地方,并且仍然要保持同步.根据这样的需求,可以具体分为以下两种情况,下面以库文件A,副本文件A1和副本文件A2,来 ...

  8. Java多线程(二) 多线程的锁机制

    当两条线程同时访问一个类的时候,可能会带来一些问题.并发线程重入可能会带来内存泄漏.程序不可控等等.不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题.本篇总结主要著名 ...

  9. php中封装的curl函数(抓取数据)

    介绍一个封闭好的函数,封闭了curl函数的常用步骤,方便抓取数据. 代码如下: <?php /** * 封闭好的 curl函数 * 用途:抓取数据 * edit by www.jbxue.com ...

  10. Django工程读取mongodb并使用分页器

    pycharm开发django工程(二) 项目需求: 1. 从mongodb中读取数据,并显示到网页中 2. 在网页显示的每一页加入分页符 首先使用pycharm的企业版新建一个django的虚拟工程 ...