无法构建PortAudio - " LNK1104:无法打开文件' ksguid.lib'"

时间:2015-04-09 23:39:01

标签: c++ visual-studio linker portaudio

我是C / C ++的初学者,所以请耐心等待。

我正在尝试构建PortAudio库,以便我可以在我的一个项目中使用它。我正在使用VS 2013,构建的预设项目文件必须转换为我的版本。我已经能够解决我在这里遇到的所有问题,除了一个:

LINK : fatal error LNK1104: cannot open file 'ksguid.lib'

我看过thisthis网站。所有这些都解决了这个问题,但是他们中的任何一个都无法解决它。以下是这些网站建议的解决方案:

  • WASAPI - 符号添加到portaudio.def
  • PA_WDMKS_NO_KSGUID_LIB - 定义添加到预处理器

2 个答案:

答案 0 :(得分:10)

您可以从Windows 7 SDK获取ksguid.lib - 文件。它甚至可能已经安装在您的计算机上。最好使用资源管理器来查找它(可能是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64)。

找到后,返回Visual Studio并转到项目> 属性> 配置属性> 链接器> 输入,然后点击其他相关性右侧的小箭头,然后选择修改
What-To-Click

输入ksguid.lib的绝对文件路径。确保用" - s包围它,并在最后添加;。 (在没有可用描述的情况下引发错误 - 我们知道微软。)

来源:Bitbucketstackoverflow

答案 1 :(得分:1)

ksguid.lib包含在Windows 7,8,8.1和windows 10 sdk中。 @Nearoo提供的答案完全有效。这个替代答案涉及修改portaudio Visual Studio项目查找库文件的目录。

作为参考,我在Windows 8.1 PC上使用Visual Studio 2013。
导航至:项目 - > 属性 - > VC ++目录 在窗口的顶部,

  1. 将配置更改为“所有配置”。
  2. 将平台更改为“所有平台”
  3. 在“库目录”部分中,添加以下路径:

    $(WindowsSdkDir)\ LIB \ winv6.3 \公里\ $(PlatformTarget)\

  4. 这个好处是这一条路径使用宏,因此它可以用于调试,发布,32位和64位构建的portaudio。