这里有一些示例代码:
#包括
int main() { SNDFILE* sndfile; SF_INFO sfinfo; snd文件= sf_open("", SFM_READ, &sfinfo); std::cout << "Hello, World!"; }
所以基本上我是从 vcpkg 静态链接它,并且我遵循了所有步骤,例如最后使用 :x64-windows-static、更改 Visual Studio 设置和配置文件等等,但由于某种原因我收到了这些错误特别是当我静态编译和使用 sf_open 时。
错误:
3 个未解决的外部因素 函数 INT123_compat_catpath 中引用的未解析的外部符号 __imp_PathCombineW 函数 wpath_need_elongation 中引用的未解析的外部符号 __imp_PathIsRelativeW 函数 wlongpath 中引用的未解析的外部符号 __imp_PathIsUNCW
注意:是的,我确实意识到 libsndfile 是在 LGPL 下获得许可的,因此我计划包含目标文件,因为这显然允许我静态链接它。
这些是来自 windows api 的函数。只需 Google 一下它们,msdn 帮助页面就会告诉您需要链接哪个 Windows 库。
例如 PathCombineW 有此帮助页面:https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcombinew 在 Requirements 部分它告诉您您需要链接到
Shlwapi.lib