SiftGPU:编译SiftGPU出现问题-无法解析的外部符号 glutInit
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____glewGetShaderInfoLog 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewGetShaderiv 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewGetProgramInfoLog 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewGetProgramiv 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewUseProgram 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewLinkProgram 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewAttachShader 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewCreateProgram 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewCompileShader 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewShaderSource 1>flatten.obj : error LNK2001: 無法解析的外部符號 __imp____glewCreateShader 1>flatten.obj : error LNK2019: 無法解析的外部符號 __imp__glewIsSupporte解決方法:
?????? 更新Glew到2.0版本
2.更新Glew之后,顯示對于原始GlobalUtil.obj 工程仍含有未解析glut函數體:
1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutInit 1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutInitDisplayMode 1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutInitWindowPosition 1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutCreateWindow 1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutDestroyWindow 1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutGetWindow 1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutSetWindow 1>siftgpu.lib(GlobalUtil.obj) : error LNK2001: 無法解析的外部符號 glutHideWindow 1>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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三维重建:闭环检测-相机闭环
- 下一篇: 固定收益类产品有哪些