C++ 将libsndfile库链接到Windows上的代码::块

C++ 将libsndfile库链接到Windows上的代码::块,c++,codeblocks,libsndfile,C++,Codeblocks,Libsndfile,我已经从超级书呆子网站安装了sndfile。安装后,我尝试使用以下方法将其添加到代码块: 程序仍然看不到库中定义的方法,给出错误: C:\Users\Blanka\Desktop\asdasdasd\main.C | 13 |对“sf|u open”的未定义引用| ||错误:ld返回了1个退出状态| 我提供了库的路径,给出了编译标志,并手动将头文件粘贴到项目文件夹中,但没有任何帮助。问题在于,它会从sndfile.h标题中看到其他函数/变量,例如SF\u INFO和SF\u FORMAT\u

我已经从超级书呆子网站安装了sndfile。安装后,我尝试使用以下方法将其添加到代码块:

程序仍然看不到库中定义的方法,给出错误:

C:\Users\Blanka\Desktop\asdasdasd\main.C | 13 |对“sf|u open”的未定义引用| ||错误:ld返回了1个退出状态|

我提供了库的路径,给出了编译标志,并手动将头文件粘贴到项目文件夹中,但没有任何帮助。问题在于,它会从
sndfile.h
标题中看到其他函数/变量,例如
SF\u INFO
SF\u FORMAT\u WAVE


我已经成功地在Ubuntu上安装了这个库,但是我现在需要在Windows上安装它

尝试使用visual studio。snffile windows installer刚刚将'libsndfile-1.lib'放入dest,但是coodblocks需要.a来链接mingw

尝试使用visual studio。snffile windows installer刚刚将'libsndfile-1.lib'放入dest,但是coodblocks需要.a来链接mingw

好消息是
SF\u INFO
SF\u FORMAT\u WAVE
已被识别,因此这意味着您的头文件已被正确读取。我看到您已将标题复制到项目中,但本文详细介绍了建议的正确方法

我确认您可以将
.lib
文件链接到code::Blocks,并且我认为您已经正确地创建了它:

我在各种论坛上看到的一个常见错误是下载了64位版本的libsndfile,而不是32位版本。代码::Blocks经常使用mingw下载,mingw包括32位的GCC编译,大多数初始用户都不知道这一点


因此,考虑到您已经正确链接,我建议您确认编译器是32(或64)位的,并下载32(或64)位版本的libsndfile。

好消息是
SF\u INFO
SF\u FORMAT\u WAVE
已被识别,因此这意味着您的头文件已被正确读取。我看到您已将标题复制到项目中,但本文详细介绍了建议的正确方法

我确认您可以将
.lib
文件链接到code::Blocks,并且我认为您已经正确地创建了它:

我在各种论坛上看到的一个常见错误是下载了64位版本的libsndfile,而不是32位版本。代码::Blocks经常使用mingw下载,mingw包括32位的GCC编译,大多数初始用户都不知道这一点


因此,考虑到您已正确链接,我建议您确认编译器是32(或64)位的,并下载32(或64)位版本的libsndfile。

“我提供指向库的路径”-您是否明确告诉它要链接哪些库?仅仅告诉它库所在的位置是不够的,您的意思是显式地提供library.lib文件的路径吗?不,我问您是否指定了要链接的库。您告诉它在哪里可以找到它们,但确实配置了它来链接它们。是否配置代码块来链接它们?是的。我在代码块属性中的链接器中添加了库文件。若要获得链接失败的帮助,您至少需要从生成日志逐字发布失败的链接器命令以及由此产生的错误。您将在代码::块构建日志选项卡(而不是构建消息选项卡)中找到这些。构建失败后,失败的链接器命令是构建日志中的最后一个g++…命令。然后是错误。“我提供了到库的路径”-您是否明确告诉它要链接哪些库?仅仅告诉它库所在的位置是不够的,您的意思是显式地提供library.lib文件的路径吗?不,我问您是否指定了要链接的库。您告诉它在哪里可以找到它们,但确实配置了它来链接它们。是否配置代码块来链接它们?是的。我在代码块属性中的链接器中添加了库文件。若要获得链接失败的帮助,您至少需要从生成日志逐字发布失败的链接器命令以及由此产生的错误。您将在代码::块构建日志选项卡(而不是构建消息选项卡)中找到这些。构建失败后,失败的链接器命令是构建日志中的最后一个g++…命令。然后是错误。