Visual studio 2010 将VS 2010解决方案转换为VS 2012链接器错误
我正在尝试在VS 2012上转换VS 2010解决方案Visual studio 2010 将VS 2010解决方案转换为VS 2012链接器错误,visual-studio-2010,visual-c++,visual-studio-2012,Visual Studio 2010,Visual C++,Visual Studio 2012,我正在尝试在VS 2012上转换VS 2010解决方案 typedef const pair (const ustring, ustring) implv; 这行代码存在于同一项目的两个不同cpp文件中。在VS 2010中,它可以无缝工作,但在2012年,错误为“找到一个或多个多重定义符号”。有指针吗?错误如下: 错误LNK2005:“public:\u thiscall wrapped\u iterator>>>,struct std::pair const>::wrapped\u ite
typedef const pair (const ustring, ustring) implv;
这行代码存在于同一项目的两个不同cpp文件中。在VS 2010中,它可以无缝工作,但在2012年,错误为“找到一个或多个多重定义符号”。有指针吗?错误如下:
错误LNK2005:“public:\u thiscall wrapped\u iterator>>>,struct std::pair const>::wrapped\u iterator>>,struct std::pair const>(类std:\u Tree\u const\u iterator>>)”(???0?美元)_iterator@V?$\u树\u常数_iterator@V?$\u树_val@U?$\u树\u简单_types@U?$pair@$$CBVustring@@V1@@std@@@std@@@std@@@std@$$CBU?$pair@$$CBVustring@@V1@@2@@@QAE@V?$\u树\u常数_iterator@V?$\u树_val@U?$\u树\u简单_types@U?$pair@$$CBVustring@@V1@@std@@@std@@@std@@@std@@@Z)已在wci_map_ustr_ustr.obj文件中定义:wci_mmap_ustr_ustr.obj什么是对?是std::pair吗?你确定对后加括号吗?请写出错误的全文。以及其他错误的描述(如果存在)。是的,它是一个std对。不知何故,stackoverflow不允许对后加括号,因此必须使用括号e、 已编辑了带有全文错误的问题。我收到了多个类似于此的错误。用于插入带格式的代码块并更正符号OK感谢您提供的信息:)这与typedef无关-typedef不可能触发链接器错误。该错误抱怨构造函数
wrapped\u iterator::wrapped\u iterator(set::const\u iterator)
(或类似的;我不确定参数)被多次定义。您是否在头文件中定义了模板专门化?不要那样做。函数模板专门化实际上不是模板(它们没有任何未绑定的模板参数),而是常规函数,并且遵循相同的规则:在头中声明一个,然后在源文件中定义它。