libsndfile:未定义的引用

libsndfile : Undefined references


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


我现在错过了什么?

订单很重要!

您想使用:

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

供大家参考

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

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

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

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

不要用MSYS安装。

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