头文件和链接器错误的问题(C ++新手)

时间:2012-04-17 17:43:16

标签: c++ visual-c++

我是c ++的新手,我在编写头文件时遇到了一些麻烦。我得到的确切错误是

  

obj.obj:错误LNK2019:未解析的外部符号“float * __cdecl getVertices(class std :: basic_string,class std :: allocator>,int,float *)”(?getVertices @@ YAPAMV?$ basic_string @ DU ?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ HPAM @ Z)在函数“struct ObjModel __cdecl importObj(void)”中引用(?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 个答案:

答案 0 :(得分:3)

float* getVertices(string buf, int i, float* ret);没有实现,因此会出现链接器错误。

答案 1 :(得分:2)

您必须将声明getVertices的模块附加到项目中。