InfiniTAM在Windows10的配置

cmake

cmake

InfiniTAM在Windows10的配置_第1张图片
image_1cs8jshp9oon56lj691ugooet9.png-302kB

直接下载exe文件安装;

opengl

OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用。如果需要在程序里直接使用OpenGL,会有很多非常恶心的预备工作要做,而且可能还要专门为平台的差异写一些代码。要跳过这些工作,可以用一个utility库,直接使用它提供的函数,就不用操心那些细节了。这样的库新一点的有GLEW,因为开源所以安装相对方便(大不了丢进去一起编译),但各种教程和书里常见的是闭源的GLUT。由于GLUT的作者已经很久没更新过了(最后更新于2000年!= =),所以其他人另外做了一个接口兼容GLUT的freeglut,开源而且一直在维护中。
在 Windows 下可以安装 GLUT 或者 freeglut 其中的一个,不过建议安装后者。在 Ubuntu 下安装 freeglut即可。

freeglut

1. 先介绍一种方法,使用MinGM

在Windows/Ubuntu下安装OpenGL环境GLUT/freeglut

  • 下载MinGW,请自行解决,这里不再赘述;
  • 点击下载freeglut3.0.0 for MinGW

注意!在64位版本的windows 7 下,win32版的freeglut.dll要放入sysWoW64,而x64版本的要放入system32。因为system32中的动态链接库其实是原生64位版本的。而为了兼顾兼容性,才有了sysWoW64,这个目录中存放的反而是32位的链接库。

```
C:\Windows\SysWOW64
└─ freeglut.dll(32位的mingw就用bin目录下那个,不是bin/x64那个)
D:\mingw
    ├─ include
    │   └─ GL
    │      ├─ freeglut.h
    │      ├─ freeglut_ext.h
    │      ├─ freeglut_std.h
    │      └─ glut.h (注意这个和老版的glut.h不同)
    └─ lib
        ├─ libfreeglut.a (这两个同样用lib目录下的两个)
        └─ libfreeglut_static.a
```

2. 如果上面的不可以,使用VS

没关系,windows就是这么坑,本人混迹Mac,Ubuntu各种操作系统未曾见过如此坑的(对开发者不友好),各种版本问题;吐槽结束,我们用微软的软件搞一下;

Freeglut在windows 7 64bit + visual studios 2010下的安装与配置
用 Visual C++ 2015 编译 FreeGLUT

  • 下载freeglut(本人是2.8.1版本)
    用Visual Studio 2013打开freeglut.sln文件,注意不要使用太高版本的VS,否则编译不成功,接下来编译就好了;


    InfiniTAM在Windows10的配置_第2张图片
    image_1csalgl8h1api171ckg01bb4dfl9.png-72.8kB
  • 几个重要的步骤就是复制dll和lib

    1. 然后进入“freeglut-2.8.1\lib”。分别复制x64和win32下的freeglut.dll文件到“C:\windows\system32”和“C:\windows\sysWoW64”下。
      强行安行第二次注意,这里一定要搞清楚;

      注意!在64位版本的windows 7 下,win32版的freeglut.dll要放入sysWoW64,而x64版本的要放入system32。因为system32中的动态链接库其实是原生64位版本的。而为了兼顾兼容性,才有了sysWoW64,这个目录中存放的反而是32位的链接库。
      2. 接着分别将x64和win32目录下的两个freeglut.lib放入“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64”和“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib”。这里就是正常对应的。
      3. 最后将“\freeglut-2.8.1\include”下的“GL”目录复制到“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include”即可。
      4. 测试工程,网上找个glut的代码自己编一下吧!

InfiniTAM在Windows10的配置_第3张图片
这就成功了!

InfiniTAM

重点来啦,前提是上面的你必须解决,否则你也将有更多的坑要踩,排除好嘛,排除法!!!

搞定驱动

既然要用到深度相机,首先要搞定硬件的驱动程序,把深度相机的Demo跑起来就算是成功了!

我这里用到的是Kinect V1设备,于是上网找kinect for sdk驱动程序,注意一下版本,具体只能试了;查了一下貌似Kinect SDK2对硬件有要求,觉得还是用v1的驱动(远离高版本),网上给出了两个下载,一个是v1.8的驱动Kinect for Windows SDK v1.8和一个开发者工具包toolkitKinect for Windows Developer Toolkit,下载下来安装。

InfiniTAM在Windows10的配置_第4张图片
image_1csan745clgk1r9k10jk1oqj8g2j.png-35.3kB

接下来打开openni的示例程序,NiViewer,出来深度图你就搞定了!!!哈哈哈,图像分左右,左边是深度图,右边是本人;
一个小秘籍:测试demo跑不出来,大概率是驱动出了问题,查版本去吧!!!(是不是暴露了win的版本兼容很成问题,微软自己的软件啊这可是)

InfiniTAM在Windows10的配置_第5张图片
image_1csan9pu1jqu1653s7ko1dbi50.png-181.3kB

搞定工程

接下来就是用cmake打开你的InfiniTAM工程,并生成build路径,如图;

InfiniTAM在Windows10的配置_第6张图片
image_1csb48hqc1tka1kt2aaest1l3h5t.png-83.9kB

error MSB3073: The command setlocal问题

打开后build,出现error MSB3073: The command setlocal这个问题,貌似很棘手,下午4点,开始研究中,先搞杯咖啡去。。。
上面的这个问题卡了大哥一下午,现在已经是晚上七点,哥还在搞这个问题,现在正在下vs2010,准备编译一下freeglut2.8.0版本,之前用的是2.8.1,因为看到工程项目里说是用2.8.0或者3.0.0,之前用3.0.0没有成功,这个版本问题真的是坑;

接下来出现了三种解决方法:

  1. 如果编译出现这个错误估计是版本不太不同造成的,双击错误来到错误的地方,删除让你错误的那行,编译没必要搞那么复杂,编译通过,但是生成的程序仍然不能运行;
  2. 默认的 CMAKE_INSTALL_PREFIX 是 C 盘,没有权限。修改 CMAKE_INSTALL_PREFIX到非当前文件夹即可。修改这个路径是不起任何作用的;
  3. 解决办法:(install)项目–>属性–>生成事件–>后期生成事件–>在生成中使用–>否,这个修改了之后也是同第一种,减少了一个cmake命令;

总之以上虽然解决了编译的问题,但是TAM程序还是未能启动,现在是第二天上午10点,这个问题还在这里卡着。。。

运行过程出现cannot find or open the PDB file

这个是调试器的问题,直接按ctrl + F5解决,很恐慌,以为又要遇到什么大坑。

还是找不到驱动的问题

InfiniTAM在Windows10的配置_第7张图片
image_1csd5di1a155s1ddmhsdvkj1rq69a.png-332.5kB

从驱动下手,然而我跑kinect的测试程序NiViewer是成功的啊,我想可能是这个程序的驱动要求不匹配造成的;

使用Visual Studio编译中的问题

  1. include移到系统库
    C:\Program Files(x86)\Windows Kits\10\Lib

  2. 添加Visual Studio工具并支持Visual C++ 64位编译器

  3. 解决打开以前版本工程不兼容问题,打开vs, 点击工具->扩展和更新,在弹出的对话框左侧单机联机,在右侧输入installer关键词,内容截屏如下,下载Microsoft Visual Studio 2015 Installer Projects;

  4. 提示找不到OpenNI2.dll,如下图所示,


    InfiniTAM在Windows10的配置_第8张图片
    image_1cs8to8mhs2gptu19k9pulju5m.png-13.9kB

    在OpenNI2安装目录bin中找到该文件复制到提示的路径下;

  5. 不是有效的win32应用程序怎么解决,这可能是你的.dll真的不符合它们的要求,从dll文件下手吧;


    InfiniTAM在Windows10的配置_第9张图片
    image_1cs8u2h8q6dk10m1gje1gps193r2j.png-50.1kB

你可能感兴趣的:(InfiniTAM在Windows10的配置)