1

我正在尝试读取 .wav 文件,因此需要在我的项目中包含 libsndfile 二进制文件。我使用的是 NetBeans 7.0,工具->库->添加新库选项不起作用,因为添加库按钮被禁用。

我尝试将头文件的路径添加到 Project->Build 属性和编译的代码中。但是当我尝试通过 Project->Linker 属性以类似的方式添加 .dll 时,NetBeans 无法找到 .dll。如果我从 MyComputer->.. 导航到该文件夹​​,我可以看到 .dll/ 但是 NetBeans 不显示它。

我使用的是 Win 7 64 位机器,并且我已经设置了适当的 libsndfile 二进制文件。已经玩了一天了。将不胜感激任何帮助。

谢谢,尼拉吉

4

2 回答 2

0

DLL 不需要设置类路径。因此,您可以从本地文件系统加载 DLL。复制 DLL 并转到文件资源管理器选项卡条并粘贴文件。

于 2012-01-09T05:55:13.370 回答
0

首先,您必须检查您的编译器版本(32 位或 64 位)是否与 libsndfile 版本匹配。我想你做得对。

我还假设您正确地将其添加sndfile.h到包含路径中。

实际上,您将需要两个库文件。我认为您忘记了正确编译的那个。

编译和链接(.lib文件)

请注意,Netbeans 7.0 不接受 .lib 文件,您需要链接 .lib 文件才能编译项目。因此,C:\Program Files\Mega-Nerd\libsndfile\lib您需要将扩展​​名复制libsndfile-1.lib并重命名为..lib.a

然后,在Poject Properties > Build > Linker > Additional Libraries Directories中添加\lib目录的路径。对我来说是Program Files/Mega-Nerd/libsndfile/lib

下面几行,您将拥有Poject Properties > Build > Linker > Libraries。指定名为 的库文件的位置libsndfile-1.a,对我来说是C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.a.

现在它至少应该编译。

执行 ( .dll)

现在,即使它已编译,它也可能不会执行。那是因为.dll需要该文件来执行最终的.exe. 只需将libsndfile-1.dll文件(对我来说它位于 中C:\Program Files\Mega-Nerd\libsndfile\bin)复制到您的项目中,位于文件旁边.exe。对我来说,它在C:\proj\dist\Debug\Cygwin-Windows\proj.exe.

编辑:我用今天的8.2版本的NetBeans查了一下,过程完全一样。

于 2018-12-12T12:34:20.263 回答