C++ 头文件中声明的函数都是在哪儿定义的?

我编写运行一个OpenGL例程时,调用别人编写的gltTransformPoint方法,出错说:ransform.obj:errorLNK2001:unresolvede... 我编写运行一个OpenGL例程时,调用别人编写的gltTransformPoint方法,出错说:ransform.obj : error LNK2001: unresolved external symbol "void __cdecl gltTransformPoint(float const * const,float const * const,float * const)" (?gltTransformPoint@@YAXQBM0QAM@Z)
这个方法是在GLTools.h中定义的,我在程序开头也包含了进去:
#include "../Common/OpenGLSB.h"
#include "../Common/GLTools.h"(路径是绝对正确的)
到GLTools.h一看,里面只是有个函数声明void gltTransformPoint(const GLTVector3 vSrcPoint, const GLTMatrix mMatrix, GLTVector3 vPointOut);
那具体的函数定义代码在哪儿呢?这是我学C++一大困惑的地方,好多头文件都只是有个声明没见具体代码,还有,这个问题该怎么解决?让程序能找到gltTransformPoint,请教大家了
好像是缺少lib文件,可是我该怎么知道gltTransformPoint函数在哪个lib文件里呢?有请赐教
展开
 我来答
tattackor
推荐于2016-03-17 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:931万
展开全部
1、函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口。定义函数的程序员提供函数原型,使用函数的程序员就只需要对函数原型编辑即可。

2、比如: 【返回类型】 函数名(参数1类型 参数1,参数2类型 参数2,……);
实例:bool swap(int a,int b);
例子中函数的返回类型为bool型,两个参数都是int型,一个名称为a ,一个名称为b
函数声明中的形参名往往被忽略,如果声明中提供了形参的名字,也只是用作辅助文档。另外要注意函数声明是一个语句,后面不可漏分号!
如果是自己写的函数,在声明函数的同时要对函数进行定义。
假设头文件名为head.h,源文件名为main.cpp,两个文件在同一个目录下
在头文件中直接加上int swap(int a,int b);这一句就可以了
在源文件中还要加上include"head.h"
并且加上函数的定义:
bool swap(int a,int b){//swap函数用于两个数据交换
int c;
c=a;
a=b;
b=c;
}
注意在头文件中声明后记得在源文件中包含这个头文件,要不然是找不到函数的定义的。
花式码农
2009-01-21 · TA获得超过1.7万个赞
知道大有可为答主
回答量:4894
采纳率:0%
帮助的人:4833万
展开全部
这不是编译错误,这是连接错误。

第一种可能:
你先去工程目录下面看有没有lib文件,有的话就用这个指令加进去:
#pragma comment( lib,"lib文件名" )
加在这两个头文件后面。
比如:
#pragma comment( lib,"glut32.lib" )
#pragma comment( lib,"glut.lib" )

第二:
看看commom/目录下面是否有对应的OpenGLSb.cpp、Gltools.cpp文件,如果有的话,就添加到工程里边来。

----------------------------------------------------
这需要查询相关文档。
不过通常如果不是系统库的话都可以在安装的SDK下面的Lib目录下找到lib文件,在bin目录下找到相关的dll文件。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jaycnvip
2009-01-21 · TA获得超过767个赞
知道小有建树答主
回答量:998
采纳率:100%
帮助的人:657万
展开全部
你奴既然是调用别人编写的gltTransformPoint方法,那么应该将别人的库文件一起拷到你的工程里面,这样连接的时候才不会发生找不到函数定义的情况。

openGL的方法一般是由两类文件组成,头文件和库文件,头文件用来声明函数原型,库文件是函数定义。

再检查一下,是否少拷了一个库文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csuideal
2009-01-21 · TA获得超过338个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:189万
展开全部
对于Windows系统函数来说,你查MSDN的时候都可以找到函数所在的头文件和所需要的库,如果用别人写的函数话必须明确在那个库。。。或者看有没有帮助文档的。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我不懂但可以装
2009-01-21
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
只包含了头文件?
是不是缺少 .lib 的文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式