您的位置:首页 > 其它

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

2014-04-18 12:55 369 查看


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

简单介绍:

Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代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、下载boost(http://www.boost.org/),解压,我的解压到
G:\boost_1_55_0

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

下面给出行得通的方法:运行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;

}


6、boost帮助文档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位系统对应win32,64位系统对应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出了点问题,图都找不到了,代码都是能跑通的)




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: