NeHe's Opengl 06:纹理映射error LNK1120: 1 unresolved externals和error LNK2019: unresolved external的问题

来源:互联网 发布:阿里云主机和云服务器 编辑:程序博客网 时间:2024/06/05 13:25

在学习NeHe的教程时,按照06:纹理映射给出的代码进行编程时,遇到了报错。

在网上查询的时候,发现很多人遇到了这个问题。有以下几种方法改错,由于比较琐碎,所以进行了整理。

1.首先进行的报错是“Error 2error C2664: 'auxDIBImageLoadW' : cannot convert parameter 1 from 'char *' to 'LPCWSTR'”。

打开你的project->opengl properties->Configuration Properties->Character Set所使用的是Use Unicode Character Set.

而unicode下char* 和LPCTSTR不是个类型,而你的函数参数的类型是LPCTSTR。

可以从以下选择一种方法更改:

(1).把Use Unicode Character Set 改成 multi-byte character set(project->opengl properties->Configuration Properties->Character Set).

(2).把auxDIBImageLoad(Filename)改成auxDIBImageLoadA(Filename).

2.把1修改之后,程序再次进行报错“LNK1120: 1 unresolved externals”和“error LNK2019: unresolved external symbol _auxDIBImageLoadA@4 referenced in function "struct 

_AUX_RGBImageRec * __cdecl LoadBMP(char *)" (?LoadBMP@@YAPAU_AUX_RGBImageRec@@PAD@Z)”。

这种错误代表程序没有找到在.h中定义的函数的实现。这可能是我们的库函数的lib文件没有添加正确。根据报错,我们可以查询一下auxDIBImageLoadA在哪个函数库里,然后检

查该函数库是否确定存放正确了。(此处没有添加正确glaux.lib库

解决方法是在头部加上#pragma comment(lib, "glaux.lib").


0 0
原创粉丝点击