Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)

Hololens入门之Sharing(HoloToolkit中Sharing库的编译)

hololens在进行共享相关的开发时,可以直接使用HoloToolkit-Unity中的Sharing相关的脚本及库文件。对应在 HoloToolkit-Unity-master\External\HoloToolkit\Sharing目录中。

这部分API文件及库文件是已经编译生成好了的。这部分库文件也可以自己进行编译生成。源码可以从 https://github.com/Microsoft/HoloToolkit 上进行下载。

编译所需环境及编译步骤可参考:https://github.com/Microsoft/HoloToolkit/blob/master/Sharing/Src/Source/Docs/ExtendedDocs/GettingStarted.md

但是上述文档中描述的编译实在是太过简陋,按照其中描述,直接运行一下BuildAll.bat 就可以编译完成,其实不然,今天折腾了半天,踩了N多个坑才最终编译成功。以下描述下编译过程中可能遇到的问题,及我的解决方法。(按照我编译的顺序依次贴出遇见的问题)

1、运行BuildAll.bat,首先遇到的是git中的版本所需的windows SDK版本和本地环境的SDK版本不一致,导致编译出错。

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第1张图片

解决方法:根据自己环境中Windows SDK的版本号,修改所有Sharing目录中的.vcxproj文件中的目标版本号,我的版本为14393,所有进行以下替换

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第2张图片


2、重新运行BuildAll.bat,会遇到C++文件中依赖的头文件无法找到

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第3张图片

解决方法:打开对应的工程,如上图中为apriltag项目中报的错。可以打开apriltag.sln, 右击项目->属性  将目标平台版本从8.1修改为10.0.14393.0(如下图)。后面编译中如遇到类似问题可以同样处理



3、重新运行BuildAll.bat,遇到同2中相同的问题

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第4张图片

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第5张图片

解决方法:打开对应工程,同2中一样的处理


4、重新运行BuildAll.bat,遇到宏重定义

解决方法:找到对应的文件SocketIncludes.h  37行,将其注释(该处没有仔细看会不会有影响)

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第6张图片


5、重新运行BuildAll.bat,文件格式有问题

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第7张图片

解决方法:打开对应的工程 CommonUniversal.vcxproj,找到并双击打开TransformManager.h,然后保存该文件

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第8张图片


6、重新运行BuildAll.bat,遇到SessionManagerUniversal.UI.csproj中SDK版本与本机环境版本不一致Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第9张图片

解决方法:文本编辑打开对应文件,将版本号修改为14393(根据自己环境进行修改)

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第10张图片


7、重新运行BuildAll.bat,在编译java环境下运行的库文件时,遇到jni.h无法查找到

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第11张图片

查看对应的工程(ClientWindowsJava.vcxproj)的属性,可以看到附加包含目录中使用到了JAVA的环境变量 JAVA_INCLUDE

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第12张图片

解决方法:添加系统环境变量,根据自己的安装路径进行修改田间。本文不讲述如何安装JDK,这个可以自行网上搜索进行安装

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第13张图片


8、重新运行BuildAll.bat,在进行PreBuild时出错

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第14张图片

查看对应的JavaTestApp.vcproj文件,可以看到其中使用到了 JAVA_BIN环境变量

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第15张图片

解决方法:添加JAVA_BIN环境变量(根据自己的路径进行修改添加)。本文不讲述如何安装JDK,这个可以自行网上搜索进行安装

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第16张图片


9、重新运行BuildAll.bat,再进行编译,编译成功。如读者还遇到其它问题,可以google之。

最终编译结果 保存在 HoloToolkit-master\Sharing\SDK中。

Hololens入门之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的编译)_第17张图片

你可能感兴趣的:(Hololens开发,Hololens开发入门)