C++;IDE从VS 6迁移到VS 2013 一个C++项目,可以由VS6编译,没有错误和警告。 VS 2013 Prof.的链接器问题正在发生。它们提供了一种模式,即std::basic_string
代码是2007年写的,但不是我写的 由构造函数引用: vrun.obj:错误LNK2019:未解析的外部符号 “uu declspec(dllimport)public:char const*uu thiscall” std::基本_字符串,类 std::allocator>::c_str(void)const“(uu imp_u?c_str@$basic\u s tring@DU?$char_traits@D@性病病毒$allocator@D@2@@std@@QBEPBDXZ) 在操作“public:\u thiscall VTrs::VTrs(类)”中引用 VMessageContext&“(??0VDMTrs@@QAE@AAVVDMMessageHandlerContext@@@Z) 在vrun.cpp中:C++;IDE从VS 6迁移到VS 2013 一个C++项目,可以由VS6编译,没有错误和警告。 VS 2013 Prof.的链接器问题正在发生。它们提供了一种模式,即std::basic_string,c++,visual-studio,visual-studio-2013,C++,Visual Studio,Visual Studio 2013,代码是2007年写的,但不是我写的 由构造函数引用: vrun.obj:错误LNK2019:未解析的外部符号 “uu declspec(dllimport)public:char const*uu thiscall” std::基本_字符串,类 std::allocator>::c_str(void)const“(uu imp_u?c_str@$basic\u s tring@DU?$char_traits@D@性病病毒$allocator@D@2@@std@@QBEPBDXZ) 在操作“pub
VTrs::VTrs(VMessageContext& handler_):
Inherited(RXS::rName().c_str()),
_handler(handler_)
{
}
(c_str
->const char*c_str()const;
--C98风格--C11尚未在本项目中应用)
在vrun.h中:
VTrs(VMessageContext&);
由操作员引用:
vrun.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
public: int __thiscall std::basic_string<char,struct std::char_traits<char>,cl
ass std::allocator<char> >::compare(char const *)const " (__imp_?compare@?$basi
c_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z) referenced in
function "bool __cdecl std::operator==<char,struct std::char_traits<char>,clas
s std::allocator<char> >(class std::basic_string<char,struct std::char_traits<c
har>,class std::allocator<char> > const &,char const *)" (??$?8DU?$char_traits@
D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$a
llocator@D@2@@0@PBD@Z)
vrun.obj:错误LNK2019:未解析的外部符号“\uu declspec(dllimport)
public:int\uu thiscall std::basic\u string::compare(char const*)const“(\uu imp\uu?compare@?$basi
c_string@DU?$char_traits@D@性病病毒$allocator@D@2@@std@@QBEHPBD@Z)引用于
函数“bool\uu cdecl std::operator=(类std::basic\u string const&,char const*)”(??$?8DU?$char\u)@
D@std@@V$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$a
llocator@D@2@@0@PBD@Z)
就解释而言,指标准运算符。(未对引用字符串的=
执行运算符重载)
顺便说一下,代码本身不包含“std::basic_string
”。
阅读了相应的msdn文章,但该问题尚未解决
“常见”问题,如“C”
修饰符修改已被考虑用于其他代码
有没有任何提示如何应对
编辑:首次使用Visual Studio 2013打开项目时,会显示一种转换对话框。我同意了,但它影响了VC++目录。将项目文件与ClearCase与以前的verison进行比较时,它是可见的。UndoCheckout(通过ClearCase)应用了旧状态。现在它可以工作了。您的链接器需要从相关的lib文件中获取较新的MSVC std库,并且在您迁移项目时,它应该会获取该库。查看项目属性->配置属性->链接器->输入,确保“忽略所有默认库”设置为“否”首次使用Visual Studio 2013打开项目时,会显示一种转换对话框。我同意了,但它影响了VC++目录。将项目文件与ClearCase与以前的版本进行比较时,它是可见的。UndoCheckout(通过ClearCase)应用了旧状态。现在它可以工作了。RXS::rName().c_str()看起来确实像std::basic_string::c_str to mestring::c_str()是一个内联函数,您永远不应该对它有链接依赖关系。我只能猜测您正在使用旧版本的
头进行编译。使用/showIncludes编译选项并确保所有头文件都来自正确的目录。