0
  • 我已将 bin 文件夹添加到系统 PATH 以及“libsndfile-1.dll”到程序的主目录。

  • 我已经链接了包含目录并从代码块的库链接器中添加了“libsndfile-1.lib”库。

  • 我已经.a从 dll 和原始定义文件中制作并链接了其他 s。因为否则它会抱怨。


在我发现头文件没有定义大量示例中隐含的函数之后。我运行了一个只包含引用可用函数的程序。 https://github.com/michaelwu/libsndfile/blob/master/examples/sfprocess.c 当然,有些东西不会再工作了,因为当我运行程序时它抛出运行时错误:应用程序无法正确启动( 0xc000007b)


我现在缺少什么?

4

3 回答 3

1

您遇到的错误表明应用程序是 32 位并试图加载 64 位库(请参阅NTSTATUS),反之亦然。

您应该安装正确的库:如果您的系统是 32 位,则安装 32 位版本;如果您的系统是 64 位,则安装 64 位版本。这里的表格好像两个版本都可以下载。

于 2015-12-15T11:27:48.403 回答
1

验证命令行,最好手动编译。

确保所有模块都来自 x64 位预编译(它们的大小略有不同)、静态和动态库,包括您制作的 .a。当只有一个模块用于 x32 位系统而不是整个库时,通常会发生NTSTATUS错误。这在音频编程中确实很重要,因为它非常依赖于它,您可以从直接声音处理中得出结论。所以这并不是图书馆的错。

不要用 MSYS 安装它。

-lsndfile..只要您从 CB 中链接了所有库,您就不必在命令行中追加。

于 2015-12-20T10:40:35.027 回答
0

订单很重要!

你想使用:

gcc -I D:\apps\libsndfile\include\ main.c -o testexec -L D:\apps\libsndfile\lib\ -lsndfile 

供你参考

于 2015-12-12T09:16:44.780 回答