试图在netbeans c++中导入DLL

trying to import dll in netbeans c++

本文关键字:导入 DLL c++ netbeans      更新时间:2023-10-16

我有一些问题,包括一个FFTw3库到我的项目。这是我第一次接触dll的,所以我很确定,这将是一些简单的东西,是缺失的…

到目前为止我所做的是:

  • 设置Build/c++ Compiler/Include Directories -并将其设置为lib文件夹
  • 设置Bujld/Linker/Additional Library Directories -并添加相同的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 '没有在this中声明范围

我在网上找,然后被弄糊涂了。我还需要.lib文件吗?它们是从.dev文件创建的吗?如果是这样的话?(对我来说,它们看起来很像,但我再说一次,我对这个话题一无所知)

所以我想知道你们中是否有人有知识并愿意帮助我使它运行…

谢谢magu_

您必须将include目录设置为头文件(例如fftw3.h)所在的路径。要检查标题是否由设置,请按ctrl +在include.

上单击

接下来像这样设置库:

  • 项目属性, Build -> Linker
  • 附加库目录:设置目录路径您的.lib.dll是- 不是一个文件
  • Libraries: [...] -> Add Library 并在那里键入名称。如果库名为libFFTw3.dll,只写FFTw3

如果您想指定完整的文件名,请使用Add Library File


编辑:

Windows (using 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:

  1. Open Project Buildproperties ( Properties -> Build )
  2. C++ Compiler -> Includes directories -> [...] -> Add ,选择解压库的路径
  3. 转到 Linker a. Additional Library Direcotries -> [...] -> Add ,选择解压缩库的路径(不是库!)b. Libraries -> [...] -> Add Library ,在此处写入 fftw3-3 ,按Ok

在Linux上的步骤是相同的,但是您必须先构建库。

fftw_create_plan()在fftw3中已过期

fftw3.h手册在这里

http://www.fftw.org/fftw3_doc/Complex-One_002dDimensional-DFTs.html Complex-One_002dDimensional-DFTs

请使用新的语法fftw_plan_dft_1d()创建计划