我做图像处理经常要用到矩阵运算,最常用到的工具就是matlab。不过matlab也就只能用在实验,真正做程序的时候,好多东西都要自己写,很麻烦。在网上搜了一下科学计算库,找到了三个,gsl、blitz++和MTL,没时间仔细研究哪个效率更高了,听了Oscargreat的推荐,开始用blitz++。
blitz++的代码下载下来发现,只是适合linux下编译,幸好在网上搜到了几篇不错的文档,在其指导下顺利的编译了blitz.lib。
- 体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6
- armylau的《VC.NET2003下安装和使用BLITZ++详细指南》原始出处不知道,大家可以自己去google,网上很多.
按照文档所述,编译blitz.lib和运行测试程序,都不会有问题。不过,我在尝试把blitz库用到自己的程序时,有了一些问题.
建了一个MFC应用程序,代码如下:
#include stdafx.h"
#include "config.h"
#include <blitz/array.h>
using namespace blitz;...
这样会报错。和Oscargreat分析了一会,发现是MFC和blitz冲突了,MFC居然把min和max用宏定义了(windef.h),这样和blitz里的min和max冲突,暂时的解决办法是用#undef在前面屏蔽掉min和max,以后再找其他的办法吧。
还有就是blitz由于是C++ template库,所以,有很多情况下的应用是不需要链接blitz.lib的,但是最好还是链接上,因为blitz源文件里还是有一些cpp的。
时间: 2024-09-10 04:54:36