qt5配置sp++

首先强调环境是qt5.7+sp++3.0。

想用c++写一点信号处理的东西,网上搜了一下看到了我国有人开发的c++信号处理库sp++,准备折腾一下弄到之前的qt项目中。

sp++实现了向量,矩阵,线性方程等数值运算,以及包括fft,滤波,时频等信号处理功能。后面会有原来项目的链接,有详细介绍。

下面简单说一下qt5中sp++的配置。

sp++的作者说由于用了模板类,分离编译比较麻烦,所有把所有的代码都写到头文件里了。所以我们直接把sp++的include文件夹位置添加到.pro文件中即可。

qt5配置sp++

这个include文件里就是sp++的所有源代码了,但是这个项目中用到了另一个开源的库fftw,所以还要将fftw的库文件连接进来。具体的步骤如下:

1.进入sp++的lib文件夹里,找到所有后缀为.a和.lib的文件(静态库文件),复制。

2.进入qt安装文件夹的lib文件夹,粘贴。

3.再次进入sp++的lib文件夹里,找到所有后缀为dll的文件(动态库文件),复制。

4.进入qt安装文件夹的bin文件夹,粘贴。

这样就把库文件复制到了qt的安装目录下。

之后还需要最后一步,在.pro文件中链接上面的库文件(sp++3.0中总共3个):

qt5配置sp++

这样配置就完成了。

最后再说一句,网上搜到的作者写的在codeblocks和vs中配置的那篇帖子,里面用的demo似乎有一些过时,我看了fir.h的源码发现里面并没有名字空间itlab的定义,只有splab的定义。我猜测可能是作者更新了源代码的缘故,大家配置好环境可以将itlab改为splab尝试一下那个demo。

这是我测试的结果:

qt5配置sp++

最后附上项目的地址:

http://download.csdn.net/download/chenshaoxunhuan/4504607


2017.10.27补充:在使用sp++包装的fftw函数时,发现原sp++自带的fftw库是32位的,这个可以去fftw官网下载编译好的64位库,替换上面的dll和lib文件即可(lib文件需要用vs的lib.exe工具生成,具体fftw的官网有介绍)。不过如果使用2的幂次方的fft的话,也可以不使用fftw,它比较适合于任意长度的序列。