未解析的外部符号错误,即使函数存在char*
unresolved external symbol error even though the function exists char*
我在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
。
统一两个项目中的字符集修复了此错误。
相关文章:
- C++模板来检查友元函数的存在
- C++quit()函数中可能存在作用域问题
- g++ 说函数不存在,即使包含正确的标头
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 根据某个函数是否存在启用模板
- 在 boost::variant 中类 holden 的复制构造函数存在问题
- 未定义的引用(但 nm 表示该函数存在)
- C++ 默认构造函数在移动和复制构造函数存在时不随"using"继承
- template_back和move赋值构造函数存在问题
- 基于方法或自由函数存在的模板构造函数解析
- 强制非类函数存在
- C++11/14:如果函数存在,则对其进行包装
- 递归函数存在out_of_range异常
- 匹配成员函数存在和签名:参数
- 未解析的外部符号错误,即使函数存在char*
- 在Qt创建者中推广QWidget,构造函数存在问题
- Boost MPL:只在(成员)函数存在时调用它
- 使用类而不是结构和构造函数存在问题
- Async_Read函数存在问题