C ++未解决的与名称重整相关的外部符号链接错误?

时间:2015-01-16 02:48:04

标签: c++ visual-studio-2010 compilation static-libraries name-mangling

所有

我使用VS 2010 sp1创建了一个静态lib项目,并简单地定义了一个带有成员函数的类(代码片段):

·H:

namespace puphttp{
    class CRequester
    {
     public:
     void RequesterUpdate();
    };
} 

的.cpp:

#include "StdAfx.h"
#include "Requester.h"
#include <iostream>
using namespace std;

namespace puphttp{
    void CRequester::RequesterUpdate()
    {
        cout<<"updating";
    }
}

最后我链接了lib文件并尝试调用以下代码:

puphttp::CRequester c;
c.RequestUpdate();

我编译时发生以下链接错误: 错误LNK2001:未解析的外部符号&#34; public:void __cdecl puphttp :: CRequester :: RequestUpdate(void)&#34;的(?RequestUpdate @ CRequest @ @@ puphttp QEAAXXZ)

然后我使用dumpbin检查我的lib中的实际函数名称,它是: 的(?RequestUpdate @ CRequest @ @@ puphttp QAEXXZ)

所以差异是 QEAAXXZ vs QAEXXZ ,我还没有时间进入名称修改规则,所以任何快速回答?非常感谢。

0 个答案:

没有答案