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

来源:互联网 发布:51淘宝小号交易平台 编辑:程序博客网 时间:2024/04/28 08:08


最近在学习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

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



 


0 0
原创粉丝点击