静态函数和链接错误

时间:2014-03-30 17:34:01

标签: c++

(我使用的是Visual Studio,并且从未手动将目标文件链接到可执行文件中)

这是我的标题代码:

#ifndef U_H
#define U_H

typedef unsigned int uint;
typedef unsigned short ushort;

class U{
public:
    static uint getX(char* a, uint b, ushort c);
    static uint getY(char* a, uint b, ushort c);
    static uint getZ(char* a, uint b, ushort c);
};

#endif

和源文件:

#include "U.h"

uint U::getX(char* a, uint b, ushort c){
    //Stuff
}

uint U::getY(char* a, uint b, ushort c){
    //Stuff
}

uint U::getZ(char* a, uint b, ushort c){
    //Stuff
}

并在主要内容#include "U.h"然后使用U::getY(a,b,c)等调用上述内容。但是我收到以下错误:

1>main.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl getX(char *,unsigned int,unsigned short)" (?getX@@YAIPEADIG@Z)
1>main.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl getY(char *,unsigned int,unsigned short)" (?getY@@YAIPEADIG@Z)
1>main.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl getZ(char *,unsigned int,unsigned short)" (?getZ@@YAIPEADIG@Z)

我经常忘记源文件中的U::部分,但这就是??

1 个答案:

答案 0 :(得分:0)

这似乎是一个系统设置问题。这种事情曾经发生在我身上。无论如何,转到[Project] - > [设置] - > [链接] - > [启用增量链接],请在此处查看设置。上次当我遇到链接问题时,我将其更改为否并解决了问题。