libsndfile:未定义的引用

时间:2015-12-12 06:51:27

标签: c mingw windows-7-x64 undefined-reference libsndfile

  • 我已将bin文件夹添加到系统PATH以及“libsndfile-1.dll”到主目录 该计划。

  • 我已经链接了include目录并添加了“libsndfile-1.lib”库 来自codeblocks的库链接器。

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

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

我现在缺少什么?

3 个答案:

答案 0 :(得分:1)

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

您应该安装正确的库:32位版本(如果系统是32位)或64位版本(如果系统是64位)。表格here似乎可以下载两个版本。

答案 1 :(得分:1)

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

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

请勿使用MSYS进行安装。

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

答案 2 :(得分:0)

订单很重要!

您想使用:

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

供您参考