我在Visual Studio的一个解决方案中有两个项目。其中一个项目(应用程序)依赖于另一个(库)。该库有一个方法:
int foo(_TCHAR*);
在标头中正确定义并实现。在应用程序中,我调用这样的方法:
int bar(_TCHAR* str) {
return foo(str);
}
我得到的错误是
错误LNK2001:未解析的外部符号“public:int __cdecl foo(char *)“
方法签名完全相同,并且使用了相同类型的变量。
答案 0 :(得分:7)
链接器无法匹配方法的原因是项目Character Set
页面中的General Properties
选项不匹配。
库项目将此选项设置为Use Unicode Character Set
,将应用程序设置为Use Multi-Byte Character Set
。
统一两个项目中的字符集修复了此错误。