我是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 ++的问题。
答案 0 :(得分:3)
float* getVertices(string buf, int i, float* ret);
没有实现,因此会出现链接器错误。
答案 1 :(得分:2)
您必须将声明getVertices
的模块附加到项目中。