Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;IDE从VS 6迁移到VS 2013 一个C++项目,可以由VS6编译,没有错误和警告。 VS 2013 Prof.的链接器问题正在发生。它们提供了一种模式,即std::basic_string_C++_Visual Studio_Visual Studio 2013 - Fatal编程技术网

C++;IDE从VS 6迁移到VS 2013 一个C++项目,可以由VS6编译,没有错误和警告。 VS 2013 Prof.的链接器问题正在发生。它们提供了一种模式,即std::basic_string

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

代码是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中:

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编译选项并确保所有头文件都来自正确的目录。