VS 2012 Vc++ 应用程序项目中的 libsndfile 库构建错误

libsndfile library build error in VS 2012 Vc++ app project

我正在 Win 7 上创建 Visual Studio VC++ 应用程序项目,它利用了 libsndfile 库。

库(libsndfile-1.dll,libsndfile-1.dll)位于:

C:\SVN\US\AdditionalIncludeDir\libsndfile

及其 headers(sndfile.hh,sndfile.h) 在

C:\SVN\US\AdditionalIncludeDir\Include

Visual Studio 项目位于:

C:\SVN\US\Simulation\audioSim.vcxproj

我已将库 header 添加为参考:

Project properties->C/C++->General->Additional Include Directories-> ..\AdditionalIncludeDir\Include
and static lib reference as

Project properties->Linker>Additional dependencies: libsndfile-1.lib Project properties->Linker>Additional Library Dir:..\AdditionalIncludeDir\libsndfile

我也添加了

..\AdditionalIncludeDir\libsndfile

到Win 7用户环境变量中的路径

顶级 C++ 文件使用库作为:

SndfileHandle mic1(".\filedata\mic1.wav");

其中 mic1.wav 位于

C:\SVN\US\Simulation\filedata

构建项目仍然报错:

error LNK2019: unresolved external symbol _sf_open referenced in
 function "public: __thiscall SndfileHandle::SndfileHandle(char const
 *,int,int,int,int)" (??0SndfileHandle@@QAE@PBDHHHH@Z)

为什么会这样?

谢谢
塞迪

我也遇到了这个问题。我在项目设置中设置了 "Additional Include Directories" (C:\Program Files (x86)\Mega-Nerd\libsndfile\include) 和 "Additional Library Directories" (C:\Program Files %28x86%29\Mega-Nerd\libsndfile\lib)。

这解决了问题: 转到项目属性 -> 配置属性 -> 链接器 -> 输入并在 "Additional Dependencies" 中输入 lib 文件名 libsndfile-1.lib字段.