3

我正在尝试编译和运行使用libsndfile库进行声音文件处理的 C 代码。

我使用此路径添加了头文件: project's Properties (in C/C++ -> General -> Additional Include Directories)

我也使用此路径链接了库: Project Properties -> Linker -> Input -> Additional Dependencies.

但是在调试时,我收到以下错误:

1>sil.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification 1>sil.obj : error LNK2019: unresolved external symbol _sf_write_sync referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_write_double referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_close referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_read_double referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_open referenced in function _main 1>c:\users\anam\documents\visual studio 2010\Projects\silence\Debug\silence.exe : fatal error LNK1120: 5 unresolved externals

有人可以在这里找出问题吗?我是使用 Visual Studio 的新手,我真的需要帮助!

4

3 回答 3

4

我遇到了同样的问题。我解决了它如下。

1)确保您正在下载 32 位 libsndfile(libsndfile-1.0.25-w32-setup.exe) 包,因为 Visual Studio 编译器是 32 位的。

2)点击libsndfile的setup.exe(libsndfile-1.0.25-w32-setup.exe)文件安装库。

3)创建项目后,执行以下 2 个步骤:

i)转到调试>>项目属性>>配置属性>> C / C ++>>常规>>附加包含目录>>单击右侧的箭头,然后单击编辑>>在这里,添加路径libsndfile 目录中的包含文件夹。

ii)步骤(i)完成后,在配置属性>>常规>>附加库目录中单击链接器>>单击右侧的箭头,然后单击编辑>>在这里,添加.库文件。您可能必须输入整个路径,因为浏览选项不显示 .lib 文件。所以,就我而言,我输入了 C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib。

最后,你完成了!您的代码现在应该可以编译和工作,而不会引发任何错误。

于 2014-06-26T21:22:47.927 回答
0

缺少指定库的文件夹目录(.lib 添加到 Additional Dependencies) VC++ 目录视图
单击库目录,单击右侧的下拉按钮并选择
并指定它应该工作的目录。

于 2016-03-19T01:35:12.157 回答
0

我有一个类似的问题,问题是混合 x64 库和 win32 项目。

于 2016-05-19T16:07:02.250 回答