配置SiftGPU前需要先配置好Glut和Glew,没有配置的可以参考该博客。
SiftGPU在github上的下载地址。
下载解压后,可以在msvc文件夹下看到SiftGPU.sln和SiftGPU_CUDA_Enabled.sln两个文件。
SiftGPU.sln是OpenGL支持,不需要CUDA的版本。
SiftGPU_CUDA_Enabled.sln是需要CUDA的版本。
本人目前在配置x64和CUDA版本时遇到了些问题,暂未解决,所以本文仅描述生成SiftGPU.sln的win32版本,如果后续解决了问题会补充x64和CUDA版。
首先打开SiftGPU.sln,右键SiftGPU,属性,VC++目录,配置好Glut和Glew的包含目录和库目录。
生成该项目。
有的人在此处可能没有任何报错,就得到了lib和bin文件夹下的SIFTGPU_d.lib和SIFTGPU_d.dll,那么恭喜你,你已经成功了,就是这么简单。
但我遇到了一个问题:找不到IL\il.h
重新阅读README文档,发现作者提到:SiftGPU uses DevIl Image library, GLEW and GLUT.
找不到的il.h正是DevIL这个库的文件。
有关该库网上的资料很少,可以直接去官网下载。
注意在Download里选择DevIL 1.8.0 SDK for Windows,下载源码自己cmake会比较麻烦遇到诸多问题。
下载解压后,属性,VC++目录,包含目录选include文件夹,库目录选lib\x86\Release。
清理,重新生成SiftGPU。
报错发现问题:找不到…\lib\DevIL.lib。
对于此问题我一开始在属性,调试,环境中配置了DevIL的dll地址(同lib库),但发现并不解决问题。
最后直接复制DevIL.lib这个库到SiftGPU下的lib文件夹下,解决。
清理,重新生成SiftGPU,生成成功,可以在lib和bin文件夹下得到SIFTGPU_d.lib和SIFTGPU_d.dll。
对SiftGPU解决方案的7个项目都进行生成。
报错:error LNK2026: 模块对于 SAFESEH 映像是不安全的。
参考博客解决该问题。
属性,连接器,命令行,在其他选项的方框中键入/SAFESEH:NO。
清理,重新生成全部,没有报错,全部成功。