Windows环境下mingw位数和dll位数不匹配造成的编译错误
最近做一个项目用到了fftw这个库,今天在编译项目时遇到如下问题:
makefile里的编译指令是:
$(cd_src) && gcc $(fftwrap).c $(mat_path) libfftw3-3.dll libfftw3f-3.dll libfftw3l-3.dll -o "..\bin\$(fftwrap)" && "..\bin\$(fftwrap).exe"
也就是说编译器识别不了这个dll文件。
通过溯源,发现使用的这个fftw库全名是fftw-3.3.3-dll64,因此这是一个64位的动态库。
联想到上次编译成功是在另一台计算机,遂查看当前计算机和另一台计算机的mingw,果然当前计算机上安装的是32位的mingw。
将另一台计算机上64位的mingw拷过来,改一下环境变量,编译通过。