我通过用extern" C"包装头文件来调用VS2010中的C静态链接库,但我仍然得到一个LNK2001:未解析的外部符号。我在其他地方调用相同的.lib文件没有任何问题,并且我重复使用来自其他地方的旧代码。我可以在github.com/toots/microsoft-audio-watermarking上找到我使用的代码。我试图使用" thrabs"函数在hthres.h中找到。我无法想到它不起作用的任何明显原因。这是示例代码。 thrabs
是外部的。是否有可能我的变量_fm_lookup
通常是在C ++中定义的?
int i;
for(i = 0; i < NFREQ; i++)
_fm_lookup[i] = thrabs((0.5 + i) * (float) fs * 0.5 / (float) NFREQ);
使用
包含C静态库 extern "C"
{
#include "htres.h"
}
错误是
Error 37 error LNK2001: unresolved external symbol _fm_lookup C:\Users\David\Documents\Projects\watermarking\Builds\VisualStudio2010\internal2003.lib(hthres.obj)
答案 0 :(得分:2)
需要将违规代码移动到自己的c文件中,并在使用extern“C”时从那里调用它。痛苦的教训。