0
(我使用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
}
並在主I #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)" ([email protected]@[email protected])
1>main.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl getY(char *,unsigned int,unsigned short)" ([email protected]@[email protected])
1>main.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl getZ(char *,unsigned int,unsigned short)" ([email protected]@[email protected])
我通常忘記源文件中的U::
部分,但是這裏有?
您可能忘記將'u.obj'鏈接到您的可執行文件中。 – Thomas
@Thomas我使用的是視覺工作室,從來沒有必要手動做到這一點?會有另一個原因嗎? – user997112
@ user997112,在VS中,您需要將您的U.cpp文件添加到解決方案資源管理器(http://i.stack.imgur.com/mzPJ3.jpg)中的源文件部分。 –