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

unresolved external symbol error even though the function exists char*

本文关键字:函数 存在 char 错误 外部 符号      更新时间:2023-10-16

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

int foo(_TCHAR*);

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

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

我得到的错误是

错误LNK2001:未解析的外部符号"public:int__cdeclfoo(char*)"

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

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

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

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