【发布时间】:2016-05-23 10:11:50
【问题描述】:
当我编译使用 xyz.lib 的项目“proj1”代码时出现以下错误(这是一个成功编译的不同项目)。
Error 3 error LNK2019: unresolved external symbol "int __cdecl Vsnprintf16(unsigned short *,unsigned int,unsigned short const *,char *)" (?Vsnprintf16@@YAHPAGIPBGPAD@Z) referenced in function "int __cdecl eastl::Vsnprintf(wchar_t *,unsigned int,wchar_t const *,char *)" (?Vsnprintf@eastl@@YAHPA_WIPB_WPAD@Z) File : xyz.lib(abc.obj)
abc.cpp 调用了函数 sprintf 。
当我将 abc.h 和 abc.cpp 的所有代码移动到其他一些时,可以说 xyz 项目中已经存在的 def.h 和 def.cpp 文件,然后一切正常,没有链接错误。我不知道为什么。
我已经使用了 abc.cpp 中的 def.cpp 文件中使用的所有包含但同样的错误。
当我从 abc.cpp 中删除 sprintf() 调用时,一切正常。
如果有人能说明为什么会这样,请。谢谢
【问题讨论】:
-
您的项目构建是否启用了 UNICODE?
-
是的,我尝试了启用和禁用 unicode 宏,同样的错误。在项目设置字符集是“使用 Unicode 字符集”@marcinj
-
看来你应该自己为这个函数添加定义
标签: c++ visual-studio-2013 linker libs