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

Dar*_*usz 3 c++ linker linker-errors visual-studio

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

int foo(_TCHAR*);
Run Code Online (Sandbox Code Playgroud)

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

int bar(_TCHAR* str) {
  return foo(str);
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

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

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

Dar*_*usz 7

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

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

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

  • 哇.Visual Studio再次罢工. (4认同)