首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码中存在LNK2001错误

代码中存在LNK2001错误
EN

Stack Overflow用户
提问于 2010-03-18 23:25:09
回答 2查看 721关注 0票数 0

我收到LNK2001错误。代码已经包含在下面。有谁能帮帮我吗?

代码语言:javascript
复制
Error   3   error LNK2001: unresolved external symbol "private: static class   std::vector<struct _UpdateAction,class std::allocator<struct _UpdateAction> > InstrumentCache::actionTaken" (?actionTaken@InstrumentCache@@0V?$vector@U_UpdateAction@@V?$allocator@U_UpdateAction@@@std@@@std@@A)    PerformanceTest.obj 

//UpdateAction.h

代码语言:javascript
复制
typedef struct _UpdateAction
{
    enum FIS_ACTION {
        ADDED,
        UPDATED,
        DELETED
    };
    int id;
    int type;
    int legacyType;
    FIS_ACTION action;

}UpdateAction;

typedef std::vector<UpdateAction> ActionTakenVector;

// InstrumentCache.h

代码语言:javascript
复制
#include UpdateAction.h

class InstrumentCache
{
public:
    static ActionTakenVector& GetApplicationUpdateVector ()
    {
    return actionTaken;
    }

    static void ClearApplicationUpdateVector()
    {
        actionTaken.clear();
    }
private:
    static ActionTakenVector actionTaken;
};

//faClient.h

代码语言:javascript
复制
#include "UpdateAction.h"
#include "InstrumentCache.h"

class FISClient
{
    void FunctionOne()
    {
        ActionTakenVector& rV = InstrumentCache::GetApplicationUpdateVector();
        InstrumentCache::ClearApplicationUpdateVector();
    }
} ;

PerformanceTest.cpp

代码语言:javascript
复制
#include "fisClient.h"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-18 23:32:05

您似乎遗漏了actionTaken的定义(类中的声明是不够的)。做加法吗

ActionTakenVector工具缓存::操作标记;

在PerformanceTest.cpp帮助中?

票数 2
EN

Stack Overflow用户

发布于 2010-03-18 23:32:01

静态成员需要初始化。在类之外的某个地方,您应该编写ActionTakenVector InstrumentCache::actionTaken,它应该初始化该静态字段并消除错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2471001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档