Geometric Tools的使用,以及使用过程中报错:参数未定义以及error LNK2001: 无法解析的外部符号 __imp_glGetTexImage

error LNK2001: 无法解析的外部符号 __imp_glGetTexImage

本人在Geometric Tools这个库的使用过程中出现上述错误,以及其他的一些参数未定义等的乱七八糟的错误

Geometric Tools的使用:先从https://www.geometrictools.com/Downloads/Downloads.html下载源码(GTEngine 6.4 Distribution (ZIP)),打开源码中Samples下任意一个项目进行编译(注意打开项目的版本,Installation Manual里面写了Microsoft Visual Studio 2019 is Version 16 (Platform Toolset v142),我用vs2019打开v16版本的项目),选择适合的环境(debug/release、x86/x64),然后生成就可以了,_Output文件夹下会生成该项目需要的库文件(也可以直接编译BuildAll项目,会在_Output文件夹下生成所有项目需要的库文件)。

要将Geometric Tools用到自己创建的工程中,需要将在_Output文件夹下生成的库文件链接到自己的项目中,并且添加预处理器,还有添加环境变量,否则会出现error LNK2001: 无法解析的外部符号和一些参数未定义等的乱七八糟的错误。

对于一些参数未定义的错误,首先要先仔细阅读Geometric Tools的安装手册(Geometric Tools Engine Version 6.4 Installation Manual and Release Notes);里面有很关键的注意事项:给项目添加预处理器( Important Preprocessor Symbols Required by Projects),也就是说以下四个预处理器一定不要忘记通过“项目-属性-C/C++ -预处理器”添加:

GTE_USE_MSWINDOWS
GTE_USE_ROW_MAJOR
GTE_USE_MAT_VEC
GTE_USE_OPENGL

给项目添加预处理器后一些参数未定义的错误就会消失

除此之外我还遇到了error LNK2001: 无法解析的外部符号的错误,但错误显示的出错的库是GTGraphicsGL45.v16.lib,但很奇怪的是本人通过检查后发现该库已在“项目-属性-链接器”中添加,而且通过https://blog.csdn.net/lianghong1564868/article/details/107201858/发现库的位数是x64没有错,而且通过重新把该库的release版加入到vs的库目录中,所以版本也没问题,但还是出现error LNK2001: 无法解析的外部符号的错误

很明显error LNK2001是链接错误,但GTGraphicsGL45.v16.lib的链接并没有问题,我想到Geometric Tools的安装手册讲到GTGraphicsGL45.v16.lib与opengl有关,所以有可能是opengl相关的库没有添加链接,我打开一个Geometric Tools的Samples下例子项目后发现还需要给项目链接opengl32.lib
和Windowscodecs.lib这两个库,添加这两个库后error LNK2001的链接错误就消失了。

总结:
1、程序中出现一些参数未定义等的乱七八糟的错误,有可能是没有添加需要的预处理器
2、对于error LNK2001的链接错误,一般是库的链接有问题,除了忘了添加库的链接、库(.lib和.dll)的位数(x86或x64)和版本(debug或release)有问题,还有可能是与报错的库相关的其他的库有问题或者没有添加

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值