具体来说,我试图通过spotify文档中给出的spshell示例登录。我很确定我包含了所有相关文件(spshell.h,cmd.h),但是下面的代码给出了错误LNK2001:未解析的外部符号:
int r;
if((r = spshell_init(username,password,blob,selftest)) != 0)
exit(r);
答案 0 :(得分:0)
“未解析的外部符号”是编译成功后发出的错误之一,但链接失败。
.h文件是标题。没有它们,您的项目就不会编译。
您一定忘记添加图书馆了。没有它们,项目将编译,但不链接。
Windows上的库文件通常以“.lib”扩展名分发,即“libspotify-2.0.lib”,有时它们与DLL配对:“libspotify-2.0.dll”。文件名是人为的。实际可能会有所不同。
您必须找到与您正在使用的libspotify版本一起分发的正确LIB文件,然后您必须编辑项目的选项或开关,以使其在链接期间使用该库。假设您正在使用MSVC,它是Project-> Properties-> Linker-> AdditionalDependencies。在那里添加LIB的路径,然后重建。
然后,将配对的DLL保留在最终的EXE附近,否则它将正常编译和链接,以便在启动时崩溃。 (虽然,有一种称为“静态库”的库也是LIB文件,并且不需要任何DLL。您可以通过大小来告诉它们:动态LIB是几十KB,而静态库通常是成千上万的KB。)