我在将 FFTw3 库包含到我的项目中时遇到一些问题。这是我第一次接触 dll,所以我很确定这将是缺少的一些简单的东西......
到目前为止我所做的是:
- 设置 Build/C++ 编译器/包含目录 - 并将其设置为 lib 文件夹
- 设置 Bujld/Linker/Additional Library 目录 - 并添加相同的 lib 文件夹
之后我尝试运行下面的演示脚本。
#include <fftw3.h>
int main(void) // Tutorial code from http://www.fftw.org/fftw2_doc/fftw_2.html
{
int N = 10;
fftw_complex in[N], out[N];
fftw_plan p;
p = fftw_create_plan(N, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_one(p, in, out);
fftw_destroy_plan(p);
}
它找到了头文件 fftw3.h 并且一直正常(如果其余部分被注释掉则运行)
p = fftw_create_plan(N, FFTW_FORWARD, FFTW_ESTIMATE);
其中指出:
main.cpp:19:57: error: ‘fftw_create_plan’ was not declared in this scope
我在网上查找并感到困惑。我是否还需要 .lib 文件,它们是从 .dev 文件创建的吗?如果是的话,是如何创建的? (它们对我来说看起来很相似,但我对这个话题一无所知)
所以我想知道你们中是否有人具备相关知识并愿意帮助我让它运行......
谢谢 麻姑_最佳答案
您必须将包含目录设置为头文件(例如 fftw3.h
)所在的路径。要检查您的 header 是否已通过 ctrl + 单击 包含内容进行设置。
接下来像这样设置库:
- 项目属性,
Build -> Linker
- 其他库目录:设置
.lib
所在的目录路径或.dll
是 - 不是文件 - 图书馆:
[...] -> Add Library
并在其中输入您的图书馆的名称,例如。如果库名为libFFTw3.dll
只写FFTw3
.
使用Add Library File
相反,如果您想指定完整的文件名。
编辑:
Windows(使用 MinGW):
下载:http://www.fftw.org/install/windows.html
此示例使用的代码(这是网站上的示例):
fftw_complex *in, *out;
fftw_plan p;
size_t N = 3;
in = ( fftw_complex* ) fftw_malloc(sizeof (fftw_complex ) * N);
out = ( fftw_complex* ) fftw_malloc(sizeof (fftw_complex ) * N);
p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(p); /* repeat as needed */
fftw_destroy_plan(p);
fftw_free(in);
fftw_free(out);
设置 NetBeans:
- 打开项目构建属性 (
Properties -> Build
) -
C++ Compiler -> Includes directories -> [...] -> Add
,选择你解压库的路径 - 转到
Linker
A。 <强>Additional Library Direcotries -> [...] -> Add
,选择你解压库的路径(不是库!) b. <强>Libraries -> [...] -> Add Library
,写fftw3-3
然后按“确定”
在 Linux 上,步骤是相同的,但您必须先构建库。
关于c++ - 尝试在netbeans c++中导入dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15896514/