1

我已将 FFTW 库 (http://www.fftw.org/) 连接到我在 C++ 中创建的自定义 mentalray DLL(我在 Linux (CENTOS) 上使用 netbeans 编译的 DLL 文件。我将此 DLL 放入软件中(Autodesk Maya)在用于添加自定义插件的文件夹中。问题是我已经在计算机上安装了 FFTW,但我不知道如何将 Maya 链接到 FFTW 库。在 Windows 上,我会将 FFTW dll 放在包含 Maya 的文件夹中.exe 文件是应用程序启动 exe 文件。
基本上我对普通 LINUX 程序员的问题是,如果我在 linux 上安装 FFTW 库并为链接到它的软件创建一个 .dll,我如何让软件链接到FFTW 图书馆?如果您需要我提供更多信息,请告诉我。

4

2 回答 2

1

确保编译正确的版本:fftw 浮点数(即 fftwf)与 fftw 双精度数。例如,您应该有一个libfftw3f.3.so文件。

如果您使用dlopen在 fftw 中调用函数,请将.so您生成的文件放在$PATH.

如果mental ray“DLL”是一个静态库,你应该配置fftw--enable-static --disable-shared并运行sudo make install.

如果mental ray“DLL”是一个动态库,你应该配置fftw--disable-static --enable-shared并运行sudo make install.

为了安全起见,你可以同时做这两个。

sudo make install只要您的mental ray“DLL”按照惯例使用fftw(即导入fftw.h文件),就会将fftw“DLL”放置在正确的位置。

当您尝试构建“DLL”时检查链接器错误。如果您看到链接器错误,则说明您忽略了运行sudo make install,并且无论您使用 fftw 做什么,您的 DLL 都无法正常工作。

于 2012-10-21T00:51:28.080 回答
1

您不需要做任何特别的事情——只要 FFTW 库位于预期的位置 ( /usr/local/lib),那么您就可以正常链接到 then ( gcc ... -lfftw3 ...)。

于 2012-08-12T15:04:25.777 回答