win8 系统下vs2010环境下 配置blitz 0.10 和boost_1_55_0

本文详细介绍了在Windows 8系统下,如何在Visual Studio 2010环境下配置Blitz 0.10和Boost_1_55_0。首先,介绍了Boost库的背景和Blitz++的特点,接着提供了下载链接。然后,详述了Boost的编译过程,包括运行bootstrap.bat、编辑user-config.jam文件和使用b2.exe编译。最后,指导了Blitz的编译步骤,包括添加源文件、配置VS2010的包含和引用路径,并进行测试。通过本文,读者可以学会这两个库的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



最近在学习opencv,需要配置blitz 0.10boost_1_55_0,在这里把过程和大家分享下:

 

简单介绍:

Boost是一个可移植、提供源代码C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。BoostC++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。boost在一些播放软件和音效中指增强,比如BassBoost,低音增强。(来自百度百科

Blitz++ 是一个数值计算包。Blitz++ 最新的版本中提供了数组和向量 ( 即矩阵 ), 随机数产生器 , 小向量和矩阵       

值得注意的是 , 与其它数值计算包相比较 ,blitz 是非常有个性的 , 它不求高大全 , 如它并没有提供所有的矩阵操作功能 , 如求特征向量 ,FFT 分析  . 它的特点在于面向对象、数组操作语法和模板操作( But the main focus of blitz is on arraysyntax   and stencil operations  [4] 。矩阵操作功能,想起 STL 中的 VALARRY 了吗? VALARRAY 中的功能这里都实现和加强了。这个在测试项目 MT1 中可以初步显示 . 

 

boost下载地址

http://www.boost.org/

blitz 0.10下载地址

http://sourceforge.net/projects/blitz/files/blitz/   

 

boost编译过程

  

 1下载boosthttp://www.boost.org/),解压,我的解压到 G:\boost_1_55_0

 2 下面这种方法在我这里是不起作用。进入G:\boost_1_55_0\boost_1_55_0,点击运行 bootstrap.bat,运行了,但是没有生成相应的b2bjam文件。

        下面给出行得通的方法:运行Visual studio命令提示(2010),使用命令 cd G:\boost_1_55_0\boost_1_55_0 进入到bootstrap.bat所在文件夹,输入bootstrap.bat运行二十秒钟,即可发现文件夹G:\boost_1_55_0\boost_1_55_0中多了两个文件,b2.exe,bjam.exe

  (提示:到这里不要关闭命令提示,下面需要继续用。)

 3编译bjam.exe生成库文件。编译前打开G:\boost_1_55_0\boost_1_55_0\tools\build\v2下面的 user-config.jam文件(写字板即可)

添加内容

using msvc : 10.0 : : <compileflags>/wd4819  <compileflags>/D_CRT_SECURE_NO_DEPRECATE  <compileflags>/D_SCL_SECURE_NO_DEPRECATE  <compileflags>/D_SECURE_SCL=0 ; 

 下面编译bjam.exe

在命令提示输入

bjam stage --toolset=msvc-10.0 --without-python --stagedir="G:\boost_1_55_0\boost_1_55_0\bin\vc10" link=static runtime-link=shared threading=multi debug release

 (这里需要很长的时间,幸运的话你完全可以去看场球赛再回来继续配置)


其中 stage 表示只生成库( dll lib ),

msvc-10.0表示用vs2010

stage 指定 boost  C++库安装在名为stage的子目录下,可由--stagedir 指定安装路径

stagedir是存在生成lib的地方,

link=static表示创建静态库,如果link=shared 表示创建动态库

runtime-link=shared 表指定C++运行时时动态链接

 threading=multi表示多线程,如果threading=single 表单线程

4、配置vs2010

添加包含路径:G:\boost_1_55_0\boost_1_55_0

添加引用路径:G:\boost_1_55_0\boost_1_55_0\bin\vc10\lib

5、测试

// myboost.cpp : 定义控制台应用程序的入口点。

//

 

#include "stdafx.h"

#include<boost/numeric/ublas/vector.hpp>

#include <boost/numeric/ublas/matrix.hpp>

#include<boost/numeric/ublas/io.hpp>

#include <iostream>

using namespaceboost::numeric::ublas;

/* 举例 "y = Ax" */

int _tmain(int argc, _TCHAR*argv[])

{

        vector<double>x (3);

 x(0) = 1; x(1) = 2;x(2)=1;


 matrix<double> A(3,3);

 A(0,0) = 0; A(0,1) = 1; A(0,2) = 1;

 A(1,0) = 2; A(1,1) = 3; A(1,2) = 3;

 A(2,0) = 1; A(2,1) = 2; A(2,2) = 2;
 
 vector<double> y = prod(A, x);


 std::cout << y << std::endl;

 system("pause");

 return 0;

}


6boost帮助文档http://pan.baidu.com/share/link?shareid=2554608044&uk=487907638

 

blitz编译 

1下载blitz 0.10下载地址http://sourceforge.net/projects/blitz/files/blitz/   解压,到G:\blitz-0.10\blitz-0.10

2、安装 Blitz-VS.NET项目

 解压打开后,找到Blitz-VS2010.zip

解压到上一层文件夹,即G:\blitz-0.10下面

3、生成 blitz.lib

  vs2010打开G:\blitz-0.10\Blitz-VS2010\blitz下面的blitz.vcxproj工程文件,这是用来产生 blitz.lib 的,它包含两种配置,根据自己系统选择32位系统对应win3264位系统对应x64

 

G:\blitz-0.10\blitz-0.10目录下的src文件夹(它是编译使用的源文件,代码原作者为了保持代码的唯一份,没有放一起),拷到目录G:\blitz-0.10\Blitz-VS2010

配置vs2010添加include路径,

G:\blitz-0.10\blitz-0.10

G:\blitz-0.10\Blitz-VS2010

 

点击重新生成解决方案就可以分别

G:\blitz-0.10\Blitz-VS2010\blitz\Win32\Debug下生成blitz.lib

G:\blitz-0.10\Blitz-VS2010\blitz\lib\Win32下生成blitz_d.lib

为了方便以后使用,在G:\blitz-0.10\Blitz-VS2010下新建文件夹lib,将blitz.lib,blitz_d.lib拷贝进去。

4、测试

VS中添加库文件路径:G:\blitz-0.10\Blitz-VS2010\lib

               添加引用目录:G:\blitz-0.10\Blitz-VS2010

                                        G:\blitz-0.10\blitz-0.10

测试代码

// myblitz.cpp : 定义控制台应用程序的入口点。

//


#include "stdafx.h"

#include <blitz/bzconfig.h>

 #include <blitz/array.h>

 BZ_USING_NAMESPACE(blitz); 

 using namespace std;


int _tmain(int argc, _TCHAR*argv[])

{

        complex<int>c(4,8);

 cout << c << endl;

 Array<int,2> ar(2,2) ;

 ar =1,1,

 2,2;

 cout << ar << endl;

 Array<double,2> A(3,3);

 A = 1.7,3.5,4.8,

 2.6,7.8,9.1,

 3.8,8.9,10.3;

 cout<<A<<endl;

 system("pause");

 return 0;

}


配置完毕

 

希望能和感兴趣的朋友一起交流

特别感谢这篇博文帮助http://www.tuicool.com/articles/NJnY3mQ

 (原本有不少截图,由于优快云出了点问题,图都找不到了,代码都是能跑通的)



 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值