- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是使用 FFTW 库来实现 c 代码。
#include <matrix.h>
#include <mex.h>
#include "C:\Users\my_user_name\Documents\fftw-3.3.5-dll64\fftw3.h"
void mexFunction ( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
int i, j, bw, bw2_1, size, size2_1, nrow, ncol;
int data_is_real;
int cutoff;
int rank, howmany_rank;
double *rresult, *iresult, *rdata, *idata;
double *workspace, *weights;
fftw_plan dctPlan;
fftw_plan fftPlan;
fftw_iodim dims[1], howmany_dims[1];
bw = 2;
weights = (double *)malloc(sizeof(double) * 4 * bw);
rdata = (double *)malloc(sizeof(double) * 5 * bw);
dctPlan = fftw_plan_r2r_1d(2 * bw, weights, rdata, FFTW_REDFT10, FFTW_ESTIMATE);
}
我目前使用的是 minGW,不是 Visual C++。如果(来自 Matlab)我调用
>>mex -c -LC:\Users\my_user_name\Documents\fftw-3.3.5-dll64 demo_fftw.c
编译正确,但正在运行
>> mex -LC:\Users\my_user_name\Documents\fftw-3.3.5-dll64 demo_fftw.c
Building with 'MinGW64 Compiler (C)'.
Error using mex C:\Users\MPUTHA~1\AppData\Local\Temp\mex_200676192178726_4216\demo_fftw.obj:demo_fftw.c:(.text+0x40):undefined reference to `__imp_fftw_plan_r2r_1d'collect2.exe: error: ld returned 1 exit status
我认为该错误是因为虽然 fftw_plan_r2r_1d 是在 fftw3.h 中声明的,但它是在链接器找不到它的其他地方定义的。我知道,如果我使用 Visual C++,则 .lib 文件包含定义,但自述文件仅告诉您在使用 Visual C++ 时编译 lib,而没有提及使用 mingw。
mingw 的 .lib 文件相当于什么?我还需要 .lib 吗?如果是这样,我该如何编译它们?
如果这个问题是重复的,我深表歉意,但我环顾四周,发现了很多适用于使用 Visual C++ 的建议,但没有一个与 mingw 相关。
最佳答案
您已经使编译器能够看到 FFTW 包含头文件。
现在,您需要链接到实际的 FFTW 代码。
幸运的是,FFTW 创建者对 Windows 用户很仁慈,并在此处提供了预构建的发行版:http://www.fftw.org/install/windows.html
We have created precompiled DLL files for FFTW 3.3.5 in single/double/long-double precision, along with the associated test programs. We hope that these are sufficient for most users, so that you need not worry about compiling FFTW
These DLLs were created by us, cross-compiled from GNU/Linux using MinGW; the 64-bit version is possible thanks to the mingw-w64 project. You should be able to call them from any compiler.
所以 MinGW 没问题。在你的情况下我会这样做(未经测试):
mex -LC:\Users\my_user_name\Documents\fftw-3.3.5-dll64 demo_fftw.c libfftw3-3.dll
关于c - 使用 minGW 将 FFTW 链接到 matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781985/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!