c++ - 尝试在netbeans c++中导入dll

标签 c++ netbeans dll

我在将 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:

  1. 打开项目构建属性 ( Properties -> Build )
  2. C++ Compiler -> Includes directories -> [...] -> Add ,选择你解压库的路径
  3. 转到 Linker A。 <强> Additional Library Direcotries -> [...] -> Add ,选择你解压库的路径(不是库!) b. <强> Libraries -> [...] -> Add Library ,写 fftw3-3 然后按“确定”

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

关于c++ - 尝试在netbeans c++中导入dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15896514/

相关文章:

c++ - 在 Linux 上使用不同版本的 gcc 进行编译和链接

c++ - 程序如何记住上次运行的时间?

c++ - 将数据从 C++ 传递到 gnuplot 示例(使用 Gnuplot-iostream 接口(interface))

java - 使用 Java 实现最小形状绘图工具桌面应用程序的指南

java - 从 JInternalFrame 调用 JFrame 的方法?

java - 如何生成特定位置上的数字必须在特定范围内的数字?

c++ - 防止从 Dll C++ 注入(inject) Dll

c++ - Boost C++ 正则表达式 - 如何返回所有匹配项

c - 将 SQLite FTS 扩展构建为 DLL 的正确方法是什么?

c# - 没有代码隐藏的 ASP.NET 页面使用其他库/DLL