Windows10+vs2013 编译SiftGPU动态库

参考博客:

http://www.itdaan.com/blog/2017/05/03/7a750043d825913166d53554ef40ec3a.html


SiftGPU使用的是wuchangchang版,稳定,精度高,匹配出的特征点多

下载地址:

https://github.com/pitzer/SiftGPU


这里我们插个嘴 关于glut glew区别

参考博客:https://www.cnblogs.com/gujianhan/p/3702050.html

GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口。使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵数,但 OpenGL现在都发展到2.0以上了,要使用这些OpenGL的高级特性,就必须下载最新的扩展,另外,不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识 别你的平台所支持的全部OpenGL高级扩展涵数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全 部函数。GLEW支持目前流行的各种操作系统(including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris)。

项目主页: http://glew.sourceforge.net/ 
文档地址: http://glew.sourceforge.net/install.html 
下载地址: https://sourceforge.net/project/downloading.php?group_id=67586&filename=glew-1.5.1-src.zip

glu是实用库,包含有43个函数,函数名的前缀为glu。Glu 为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。
glaux是OpenGL辅助库,包含有31个函数,函数名前缀为aux。这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。
glut是实用工具库,基本上是用于做窗口界面的,并且是跨平台(所以有时你喜欢做简单的demo的话,可以光用glut就ok了)

GLX:OpenGL extension for X.

对于X窗口系统,它所使用的的OpenGL扩展(GLX)是作为OpenGL的一个附件提供的,所有的GLX函数都使用前缀glX。

常见的OpenGL头文件如下:(Windows系统中可以忽略大小写的区别,我自己也没太注意大小写。同时,文件的路径可能变化,例如不是<GL/gl.h>而是"gl.h",具体情况要看你到底把头文件放到哪了)

<GL/gl.h>:OpenGL所使用的函数和常量声明。

<GL/glu.h>:GLU(OpenGL实用库)所使用的函数和常量声明。GLU库属于OpenGL标准的一部分。(以下各种库则不属于)

<GL/glaux.h>:GLAUX(OpenGL辅助库)所使用的函数和常量声明。这个库提供了创建窗口,处理键盘和鼠标事件,设置调色板等OpenGL本身不提供,但在编写OpenGL程序时又经常用到的功能。目前这个库已经过时,只有比较少的编译环境中有提供,例如VC系列。在VC系列编译器中,使用这个头文件之前必须使用#include <windows.h>或者具有类似功能的头文件。

<GL/glut.h>:GLUT(OpenGL实用工具包)所使用的函数和常量声明。这个库的功能大致与GLAUX类似,目前许多OpenGL教程使用这个库来编写演示程序。一些编译系统可能不直接提供这个库(例如VC系列),需要单独下载安装。这个头文件自动包含了<GL/gl.h>和<GL/glu.h>,编程时不必再次包含它们。

<GL/glext.h>:扩展头文件。因为微软公司对OpenGL的支持不太积极,VC系列编译器虽然有<GL/gl.h>这个头文件,但是里面只有OpenGL 1.1版本中所规定的内容,而没有OpenGL 1.2及其以后版本。对当前的计算机配置而言,几乎都支持OpenGL 1.4版本,更高的则到1.5, 2.0, 2.1,而VC无法直接使用这些功能。为了解决这一问题,就有了<GL/glext.h>头文件。这个头文件提供了高版本OpenGL所需要的各种常数声明以及函数指针声明。

<GL/wglext.h>:扩展头文件。与<GL/glext.h>类似,但这个头文件中只提供适用于Windows系统的各种OpenGL扩展所使用的函数和常量,不适用于其它操作系统。

"glee.h":GLEE开源库的头文件。它的出现是因为<GL/glext.h>虽然可以使用高版本的OpenGL函数,但是使用的形式不太方便。GLEE库则让高版本的OpenGL函数与其它OpenGL函数在使用上同样方便。需要注意的是,这个头文件与<GL/gl.h>是冲突的,在包含"glee.h"之前,不应该包含<GL/gl.h>。
#include <GL/glut.h>
#include "glee.h"   // 错误,因为glut.h中含有gl.h,它与glee.h冲突
                    // 但是如果把两个include顺序交换,则正确
"glos.h":虽然这个也时常见到,但我也不知道它到底是什么,可能是与系统相关的各种功能,也可能只是自己编写的一个文件。我曾经看到一个glos.h头文件中只有一句#include <GL/glut.h>。


假设已经安装好cuda开发环境,我是用的是cuda v9.0

同时需要下载the OpenGL Extension wrangle library(glew)支撑库,

网址为:https://sourceforge.net/projects/glew/files/glew/

还需要下载glut支撑库,the OpenGL Utility Toolkit,网址为:https://www.opengl.org/resources/libraries/glut/glut_downloads.php


编译glew x64

下载以后解压

使用VS2013 打开 sln工程文件

把32位和64位都生成一遍

其中glewinfo 和 visualinfo 是测试程序,我们不需要

glew_shared生成的是动态库

glew_static生成的是静态库

把x64位的 Release 和 Debug的静态库整理下:

 Debug的64位静态库

Release的64位静态库

头文件

末尾带s或直接标明static为静态版本


这里全部截图太墨迹了,我直接把我编译好的64位静态库动态库上传:

有需要的小伙伴在我的下载资源找一下

接着我们下载glut

如果你想使用直接编译好的下载这个:

里面有32位和64位 

如果想使用window VS编译的版本

网址:

https://user.xmission.com/~nate/glut.html

这个打开后会有 sln的VS工程文件:


glut默认只给了动态库的版本,如果我们想要静态库还要改,偷懒了,只生成动态库吧

我们选择x64位的Debug和Release 分别生成

取出我们需要的: 

然后和glew一样,别忘了把头文件取出:

老规矩,重新放到一个目录下,然后想glew一样,把debug的后面加上d,以示区分

为了让大家看的更明白

我们使用cmd的命令生成树状图

tree /f > tree.txt

还有一个图像处理库DevIL

这里我并没有编译,网上有他的64位Release版本

我也会上传到我的资源

DevIl Image library图像库

https://github.com/DentonW/DevIL

这个库需要:

Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)

Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)

Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)

Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)

Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES)

Could not find libSquish

Could NOT find LCMS2 (missing: LCMS2_LIBRARY LCMS2_INCLUDE_DIR)

如果一个一个编译的话,参考博文:

https://blog.csdn.net/github_35160620/article/details/60267890

等等,发现了新大陆

我找到了作者编译好的

https://sourceforge.net/projects/openil/files/

 

下载完成后,解压,进入SiftGPU\msvc\目录,用vs2015打开siftGPU.sln(编译openGL版本动态库),或者打开SiftGPU_CUDA_Enabled.sln(编译CUDA版本的动态库)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值