背景. FFTW函数库不能在MinGW版本上使用
Qt有MinGW和MSVC两个版本,尝试使用FFTW函数库时,没有找到在MinGW上使用的方法,因此在电脑上又安装了一个MSVC版本。工程拷过来时发生了不少问题。
1. 编译报错:无法找到main.obj
原因是工程名或路径名中有空格,MinGW支持路径有空格,MSVC不支持空格。
解决方式:删除路径或工程名中的空格。
2.文件编码问题:MSVC不能很好地支持中文
代码和打印中的中文出现大量乱码。
解决方式:使用editplus打开源文件,将文件编码格式转为utf8+bom
3.编译报错:string::arg 重载有相似的转换
解决方式:将 .arg(num,9,'f',2) 改为 .arg(num,'f',2).
4.多线程,无法打开文件:pthread.lib
pro文件中,原来(MinGW)是:LIBS += lpthread libwsock32 libws2_32
改为(MSVC): LIBS += -lws2_32
5.FFTW配置
(1)使用VC或VS编译fftw
(2)将libfftw3-3.dll拷贝至Qt/Qt5.8.0/5.8/msvc2015/bin下
(3)pro文件中 LIBS += D:/fftw/libfftw3-3.lib
(4)添加fftw3.h头文件