SiftGPU:编译SiftGPU出现问题-无法解析的外部符号 glutInit
来源:互联网 发布:网络播放平台 编辑:程序博客网 时间:2024/05/22 07:01
OpenCV出现了ORB特征和SURF的GPU版本,
参考:opencv上gpu版surf特征点与orb特征点提取及匹配实例至于使用什么并行API暂时没有探究。
但没有发现OpenCV-SIFT的GPU使用。需要自行编译,参考:编译Opencv的GPU,利用CUDA加速
SiftGPU的原始库可以编译通过。但不能使用,在使用时引出了一连串96个编译错误。
1.Glew函数错误
1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewGetShaderInfoLog1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewGetShaderiv1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewGetProgramInfoLog1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewGetProgramiv1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewUseProgram1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewLinkProgram1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewAttachShader1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewCreateProgram1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewCompileShader1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewShaderSource1>flatten.obj : error LNK2001: 无法解析的外部符号 __imp____glewCreateShader1>flatten.obj : error LNK2019: 无法解析的外部符号 __imp__glewIsSupporte
解决方法:
更新Glew到2.0版本
2.更新Glew之后,显示对于原始GlobalUtil.obj 工程仍含有未解析glut函数体:
1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutInit1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutInitDisplayMode1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutInitWindowPosition1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutCreateWindow1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutDestroyWindow1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutGetWindow1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutSetWindow1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 无法解析的外部符号 glutHideWindow1>E:\CodeBase\CodeValidSource\SLAM\ORB_SLAM_Wish\Build\Win\ORBSLAM\x64\Release\SlamFrame.exe : fatal error LNK1120: 8 个无法解析的外部命令
找不到合适的glut版本,暂时无法解决。
更正方法:
2.1. 去掉原始Sift工程中所有的 #include "GlobalUtil.h" 语句
此方法不可取!
2.2. 注销掉GlobalUtil.cpp里面所有的GLut函数
结果:
整个显示界面不能使用,因此也不必使用!Glut问题也成为悬着的问题。
然而不能使用,在初始化时候出现问题,因此必须解决Glut问题。
解决方法:
64位版本使用32位版本问题。
32位版的很好找,网上一找一堆,可是64位版的相对比较难找,更有人说glut不支持64位的开发,搞的小菜一度想放弃。就在我快要放弃的时候,一个大神跳出来跟我说,纳尼,谁说没有64bit的??!!
不多说,直接给网址:http://download.csdn.net/detail/knownall/6799947这是glut3.7.6,里面包含debug/release,32bit和64bit。
当然也可以选择下载源码自己编译: http://download.csdn.net/detail/knownall/6799967 自己编译的应该感觉起来比较爽,小菜便是这么做滴。
使用Glut的64位版本。下载地址:http://download.csdn.net/download/knownall/6799947
- SiftGPU:编译SiftGPU出现问题-无法解析的外部符号 glutInit
- SiftGPU
- 使用SiftGPU遇到问题:freeglut ERROR: Function <glutDestroyWindow> called without first calling 'glutInit'.
- 编译时出现错误:无法解析的外部符号
- QT+VS2008编译出现errorLNK2001:无法解析的外部符号
- 关于vs2010 C++编译链接总是出现“LNK:2019 无法解析的外部符号”的问题
- qt编译中常出现的无法解析的外部符号问题
- 出现错误:无法解析的外部符号
- 编译提示无法解析的外部符号
- win7 vs2015 编译SiftGPU动态库
- 无法解析的外部符号问题
- 无法解析的外部符号问题小结
- 无法解析的外部符号问题小结
- 在编译时出现无法解析的外部符号Cxx::AssertValid(void)const的解决方法
- PROC生成的文件,编译时出现sqlcxt无法解析的外部符号
- 写Filter中编译出现的错误,无法解析的外部符号 "public: __thiscall CTransformFilter::CTransformFilter
- directx 编译书中带的源码出现无法解析的外部符号
- VS2010 在编译一个驱动时出现无法解析的外部符号 的解决方法
- C++ 中export 关键字的尴尬处境
- Several ports (8005, 8080, 8009) required by Tomcat v7.0
- dp2px
- Linux目录结构
- 解决IllegalStateException: Can not perform this action after onSaveInstanceState
- SiftGPU:编译SiftGPU出现问题-无法解析的外部符号 glutInit
- APK大小的瘦身的总结:
- android、ios音频兼容解决方法
- MathType公式编辑器中怎么输入千分号
- iOS多个第三方库的.a中.o重复定义解决方法
- HR是这样筛选简历的,不知道就完蛋!
- iOS 关于UITableView Group移动的那些事儿(tableview section move)
- SVN中的trunk(主线) branch(分支) tags(标记)介绍
- fastjson解析大驼峰