2012-04-17 33 views
0

我是新來的c + +和我有一些麻煩製作頭文件。我得到確切的錯誤是標題和鏈接器錯誤的問題(新的C++)

obj.obj:錯誤LNK2019:無法解析的外部符號 「浮動* __cdecl getVertices(類的std :: basic_string的,一流的std ::分配器>,整型,浮點*)」( (void)「(?)中引用的?getVertices @@ YAPAMV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ HPAM @ Z)在函數」struct ObjModel __cdecl importObj importObj @@ YA?AUObjModel @@ XZ)

我看到的錯誤/解決方案似乎比我所做的更復雜。這是我的標題,我懷疑是錯的。

//obj.h 
#ifndef OBJ_H_INCLUDED 
#define OBJ_H_INCLUDED 

#include <stdio.h> 
#include <stdlib.h> 
#include <string> 
#include <fstream> 
#include <iostream> 
using namespace std; 

struct ObjVertex { 
    float x, y, z; 
}; 

struct ObjTriangle { 
    int Vertex[3]; 
    int Normal[3]; 
}; 


struct ObjModel { 
    int NumVertex, NumNormal, NumTexCoord, NumTriangle; 
    ObjVertex *VertexArray; 
    ObjVertex *NormalArray; 
    ObjTriangle *TriangleArray; 
}; 

//function prototypes 
float* getVertices(string buf, int i, float* ret); 
ObjModel importObj(); 
char* subString(char* buf, int b, int e); 

#endif 

我剛開始在C++中,但我在Java和C的經驗,所以它可能是一個問題,我不知道一些C++具體的事情。

+2

你的cpp文件是什麼樣子的?這個錯誤表明你的'getVertices'函數的定義與頭部聲明的簽名不匹配 – 2012-04-17 17:45:30

+1

就是這樣,我錯誤地實現了getVertices。我發誓我在張貼之前校對了一會兒,儘管看起來我沒有。 – popctrl 2012-04-17 17:49:58

回答

3

float* getVertices(string buf, int i, float* ret);沒有實現,因此你得到一個鏈接錯誤。

+0

...剛發現錯誤。抱歉。 – popctrl 2012-04-17 17:49:02

2

您必須將聲明getVertices的模塊附加到項目中。