安装Boost

原创 2006年05月23日 04:55:00
对于vs2003.net,如果只安装boost 相对比较简单,可以跳到步骤2,这里要安装boost 的stlport 版本。即同时安装stlport 和 以stlport 为标准库编译 boost .
1、先安装stlport
进入stlport/src 目录
运行nmake –f vc71.mak install
这样默认stlport头文件放入
..../Microsoft Visual Studio .NET 2003/Vc7/include/stlport 目录
在vc 的工具-〉选项-〉项目-〉vc++目录 中设置stlport头文件目录。
注意目录位置要放在vc 头文件链接的上面,这样#include 标准库是优先选择了stlport 而不是 vc 自带的stl .
lib 自动拷贝到了vc7/lib 中可以不用设置。

对于5.02 版本,src目录中没有makefile 文件, 有cmd控制台进入build/ lib 目录,执行完 configure.bat 然后再对vc71.mak 进行 make

2、编译boost,  先编译bjam:
a 运行tools/build/jam_src/build.bat,然后会看见 bin.ntx86目录,里面有bjam.exe

b设置环境变量 如: 
PATH= e:/boost1.32.0/boost/tools/build/jam_src/bin.ntx86
 或者把bjam 拷贝到boost 根目录

SET VC71_ROOT=
"C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7"
这个也可以不用设置。

使用vc提供的工具 visual studio.net 2003 命令提示控制台,进入boost目录:执行

bjam  "-sTOOLS=vc-7_1 " install

便可把相关的头文件和编译后的库文件默认安装到c:/boost。如果不使用stlport 对于vc2003安装就这么简单,


对于支持stlport 的boost 安装执行

bjam "-sTOOLS=vc-7_1-stlport" "-sSTLPORT_PATH=E:/STLPort
"-sSTLPORT_VERSION=4.6.2" stage
我安装的stlport是4.6.2版本的,注意上面指定的stlport目录和版本,在编译过程中会出错但能编译完。
如:F:/boost/boost_1_32_0/boost/lexical_cast.hpp(150) : error C2679:
还有其他一些原因不能编译出来的库。
大部分安装都会有这个问题,可以添加 "-sBUILD=<native-wchar_t>off" 选项关闭编译时的/zc:wchar_t选项
bjam "-sTOOLS=vc-7_1-stlport" "-sBUILD=<native-wchar_t>off"  "-sSTLPORT_PATH=E:/STLPort" "-sSTLPORT_VERSION=4.6.2"  stage
注意按照上面 stlport  lib 的目录是在
E:/STLPort/stlport-4.6.2/lib ,后面数字是版本号指定的目录中的数字

编译后在boost 根目录出现一个stage 目录,里面是所有编译过的库。我的stlport 版本有158个文件,vc 200多一些,可见stlport 有些库没出来,多半是跟wchar_t有关的。

完成后可以测试下面的程序
#include "stdafx.h"
#include <iostream>
#include <boost/regex.hpp>
#include <boost/thread.hpp>

int main()

    // 3 digits, a word, any character, 2 digits or "N/A", 
    // a space, then the first word again
    boost::regex reg("//d{3}([a-zA-Z]+).(//d{2}|N/A)//s//1");   
    std::string correct="123Hello N/A Hello"; 
    std::string incorrect="123Hello 12 hello";   
    assert(boost::regex_match(correct,reg)==true); 
    assert(boost::regex_match(incorrect,reg)==false);
    boost::regex reg1("(new)|(delete)");
    boost::smatch m;std::string s=  "Calls to new must be followed by delete. /  Calling simply new results in a leak!";
    if (boost::regex_search(s,m,reg1))
    {  // Did new match? 
        if (m[1].matched)   
            std::cout << "The expression (new) matched!/n"; 
        if (m[2].matched)   
            std::cout << "The expression (delete) matched!/n";
    }
    return 0;
}

注意编译debug 版本设置工程-〉c++ -> 命令行附加选项加入 /GX  /D_STLP_DEBUG。代码生成-〉运行时库必须选择多线程版本的, 没有
/D_STLP_DEBUG  编译时回停留在这里
elif defined(_DEBUG)
#            define BOOST_LIB_RT_OPT "-gdp"
#            pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
#            error "Build options aren't compatible with pre-built libraries"
#        else
#            define BOOST_LIB_RT_OPT "-p"

如果没有指定使用多线程版本,编译会提示你缺少libboost_regex-vc71-sgdp-1_xx_1.lib 的库,其实默认编译没有这个库。可能指定一些编译参数会有吧. 如果不指定多线程的话。stlport 的库也有链接问题。这些库基本都是多线程版本的(不代表线程安全)。最好指定为多线程动态库 /md 或 /mdd 版本。静态库编译出来太大了

对于test 库,程序能编译但不能链接,对于vc自带stl 与stl port 都一样,不知道哪里需要设置。里面有些文件直接在vc工程中都不能编译,可能版本还不是太好,错误如下
test_tools::tt_detail::check_impl  , 搜搜网上存在这样问题的不少。这样BOOST_CHECK 之类的宏就不能使用了
error LNK2019: 无法解析的外部符号 "void __cdecl boost::test_tools::tt_detail::check_impl(class boost::test_tools::predicate_result const &,class boost::basic_wrap_stringstream<char> &,class boost::unit_test::basic_cstring<char const >,unsigned int,enum boost::test_tools::tt_detail::tool_level,enum boost::test_tools::tt_detail::check_type,unsigned int,...)" (?check_impl@tt_detail@test_tools@boost@@YAXABVpredicate_result@23@AAV?$basic_wrap_stringstream
@D@3@V?$basic_cstring@$$CBD@unit_test@3@IW4tool_level@123@W4check_type@123@IZZ)

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

BOOST笔记之安装编译

为了写夸平台的程序,准备使用BOOST库; 我们知道BOOST库其实是个总称,由很多小的库(或称组件)组成。 当然,为了使能编写夸平台的代码,本人使用MingWG,而非Windows下用得较多的VC;...

VS2010环境中安装boost_1_48_0

VS2010环境中安装boost_1_48_0 1)  首先下载并解压,得到boost_1_48_0文件夹 2)  从vs2010的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

win8.1系统vs2013中boost 1.55.0的安装

win8.1系统vs2013中boost 1.55.0的安装

boost 库安装

Linux下boost库安装过程 一、下载最新的 boost 库,下载地址: http://www.boost.org/users/download/   二、在适当的位置解压 bo...

如何编译&使用boost库?

1. 编译 1.1. 下载地址:http://www.boost.org/ 1.2. VS2005编译boost_1_55_0 1.2.1. 使用vs2005的命令行执行:...\boost_1...

Boost安装

2.1 Boost官网下载Boost最新版Version 1.55.0 2.2将下载压缩包解压到本地 解压后可看到文件夹下有个bootstrap.bat文件。 2.3打开cmd命令窗口,运行boo...

20160225 VS2013中安装配置和使用Boost库

Boost安装 2.1 Boost官网下载Boost最新版Version 1.55.0 2.2将下载压缩包解压到本地 解压后可看到文件夹下有个bootstrap.bat文件。 2.3打开cmd命令...

boost安装

先直接上方法 1. 准备好boost编译文件; 2.(我放在D:/cpp目录下)解压到当前文件夹 3.打开VS2010->VS TOOLS->VS命令提示 4.CD D:/cpp/boost_...

Boost安装

一、下载: 官网上下载Boost 官方网站:http://www.boost.org/

ubuntu 安装 BOOST

安装BOOST (1)      下载boost_1_58_0: http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)