惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
SecWiki News
SecWiki News
Forbes - Security
Forbes - Security
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
V
V2EX - 技术
S
Secure Thoughts
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
S
Securelist
S
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
G
GRAHAM CLULEY
H
Hacker News: Front Page
Microsoft Azure Blog
Microsoft Azure Blog
I
Intezer
Google Online Security Blog
Google Online Security Blog
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Webroot Blog
Webroot Blog
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
The Cloudflare Blog
I
InfoQ
L
LangChain Blog
U
Unit 42
P
Proofpoint News Feed
S
Schneier on Security
S
Security Affairs
Y
Y Combinator Blog
T
Tenable Blog
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
量子位
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
博客园 - 聂微东
D
Darknet – Hacking Tools, Hacker News & Cyber Security
GbyAI
GbyAI
AWS News Blog
AWS News Blog

博客园 - liuym

TB 编程整理 三 ICE开发初级研究 二 示例程序一 - liuym - 博客园 一 VC2008环境中ICE的配置 无法定位序数 3109 于LIBEAY32.dll - liuym 转:Virtual List的使用方法 转:VC++编程之CListCtrl控件的使用 2 转:VC++编程之CListCtrl控件的使用 好用 转:删除,修改注册表中需要设置权限的项 转:软件能够修复硬盘吗?―硬盘损坏全分析 转:CWnd 对象怎么和 HWND 窗口句柄相互转化 VC 多文档窗口 子窗口最大化时切换窗口 窗口没有最大化显示的问题 转:送给那些一心想要传送文件的朋友(TCP协议).cpp-from CSDN 转:如何去了解、熟悉一个已经开发完的项目 进行维护、二次开发或者升级 递归创建文件夹 DLL中资源和主程序资源冲突 - liuym - 博客园 转:一种巧妙的删除程序自己的方法 转:双缓冲图形刷新技术 和 WGF双缓冲绘图框架 软件保护建议(转)
转:Windows VC6编译安装Boost库
liuym · 2010-06-10 · via 博客园 - liuym

首先从Boost的老巢http://www.boost.org/下载。下载完成以后是一个安装文件(其实就是进行自动解压缩的)。选择你的目录解压缩Boost库。然后我们开始对其进行编译我所下载的版本是1.33.1。

1.cmd

2.进入安装VC的目录例如c:\Program Files\Microsoft Visual Studio\VC98\Bin目录

3.运行VCVARS32.BAT(这个操作的作用是对此控制台注册VC的环境变量,这样我们就可以在任意目录使用cl进行编译程序)。

4.进入Boost的目录例如c:\boost_1_33_1\tools\build\jam_src

5.修改build.bat脚本的参数(如果必要的话,你的安装目录不是c:盘)

   将原参数

   if EXIST "C:\Program Files\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" (
      set BOOST_JAM_TOOLSET=msvc
      set BOOST_JAM_TOOLSET_ROOT=C:\Program Files\Microsoft Visual Studio\VC98\
   goto :eof)

  修改为(就是你的VC6.0安装的目录,我这里举个例子)

   if EXIST "D:\Program Files\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" (
      set BOOST_JAM_TOOLSET=msvc
      set BOOST_JAM_TOOLSET_ROOT=D:\Program Files\Microsoft Visual Studio\VC98\
   goto :eof)

6.在刚才打开的控制台下运行

  D:\d\boost_1_33_1\tools\build\jam_src\build.bat

  最终会在目录下生成一个名为bin.ntx86的文件夹里面包含一个bjam.exe可执行文件,将其拷贝到D:\boost_1_33_1目录下

8.设置环境变量

SET MSVC_ROOT="c:\Program Files\Microsoft Visual Studio\VC98" 
SET VISUALC="c:\Program Files\Microsoft Visual Studio\VC98" 
SET JAM_TOOLSET=VISUALC
SET PYTHON_ROOT=D:\Program Files\Python23
SET PYTHON_VERSION=2.3

9开始编译  将目录移动至 c:\boost_1_33_1\目录下 或者将bjam等程序拷贝到c:\boost_1_33_1\目录下,执行命令

bjam -sTOOLS=msvc install(将会安装在默认目录C:\Boost)

这样编译就完成了

10.boost类库在VC6.0的IDE环境中的配置

Tools” -> “Options” -> “Diretories” -> “Show Diretories for”中的下拉框选择:
1) 在Include files 中添加C:\BOOST\INCLUDE\BOOST-1_33_1\BOOST目录。
2) 在Library files  中添加C:\BOOST\LIB目录。

11.测试

如果你不能确定,你的编译是否成功。就需要进行一下测试,拿正则表达式类为例。

测试如下程序

#include "stdafx.h"
#include <cstdlib>
#include <stdlib.h>
#include <boost/regex.hpp>
#include <string>
#include <iostream>

using namespace std;
using namespace boost;

regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)");

int main(int argc, char* argv[])
{
     std::string in;
     cmatch what;
     cout << "enter test string" << endl;
     getline(cin,in);
     if(regex_match(in.c_str(), what, expression))
     {
           for(int i=0;i<what.size();i++)
           cout<<"str :"<<what[i].str()<<endl;
     }
     else
     {
        cout<<"Error Input"<<endl;
     }
        return 0;
}

输入:select name from database;

输出:str:select name from table
   str:name
   str:table
这样就完成了

单个库编译方法:(以regex为例)

编译boost.regex的另一种办法 
1.运行vcvars32.bat,可以帮助设置好vc命令行环境 
2.cd boost_1_33_1\libs\regex\build 
3.nmake -vc6.mak

这种方式可以只编译regex 
这时会在当前目录下生成vc6目录,里面有已编译好的lib和dll文件, 这样以后的步骤中可以设置regex库时指向这里, 包含文件需要设置到boost_1_33_1目录 

另修正补充: 
用bjam编译regex时,选项-sTOOLS=vc7中vc7改成vc71,否则下面最终生成工程时需要改个文件名( 
libboost_regex-vc7-mt-sgd-1_33_1.lib -> 
libboost_regex-vc71-mt-sgd-1_33_1.lib)

点评: 按照这个方法基本成功 编译库,大部分库编译成功,由于我主要是用boost.regex  组件 ,这个库是

成功得,测试通过,其它得库未测试,由于我编译得是1.34.0版本 文件得位置和此文说得不一样 ,build.bat 文件只需要修改一处 if "_%ProgramFiles%_" == "__" set ProgramFiles=F:\

设置正确得ProgramFiles变量。

设置变量的方法:cmd.exe  set  xxx=yyy

有点疑问的地方 yyy 是否要带引号 待以后解决?

posted on 2010-06-10 15:32  liuym  阅读(839)  评论()    收藏  举报