即使函数存在char *,仍然存在未解析的外部符号错误

时间:2013-08-12 09:04:09

标签: c++ visual-studio linker linker-errors

我在Visual Studio的一个解决方案中有两个项目。其中一个项目(应用程序)依赖于另一个(库)。该库有一个方法:

int foo(_TCHAR*);

在标头中正确定义并实现。在应用程序中,我调用这样的方法:

int bar(_TCHAR* str) {
  return foo(str);
}

我得到的错误是

  

错误LNK2001:未解析的外部符号“public:int __cdecl   foo(char *)“

方法签名完全相同,并且使用了相同类型的变量。

1 个答案:

答案 0 :(得分:7)

链接器无法匹配方法的原因是项目Character Set页面中的General Properties选项不匹配。

库项目将此选项设置为Use Unicode Character Set,将应用程序设置为Use Multi-Byte Character Set

统一两个项目中的字符集修复了此错误。