天天看點

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的編譯)

解決方法:根據自己環境中Windows SDK的版本号,修改所有Sharing目錄中的.vcxproj檔案中的目标版本号,我的版本為14393,所有進行以下替換

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

2、重新運作BuildAll.bat,會遇到C++檔案中依賴的頭檔案無法找到

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

解決方法:打開對應的工程,如上圖中為apriltag項目中報的錯。可以打開apriltag.sln, 右擊項目->屬性  将目标平台版本從8.1修改為10.0.14393.0(如下圖)。後面編譯中如遇到類似問題可以同樣處理

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

3、重新運作BuildAll.bat,遇到同2中相同的問題

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)
Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

解決方法:打開對應工程,同2中一樣的處理

4、重新運作BuildAll.bat,遇到宏重定義

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

解決方法:找到對應的檔案SocketIncludes.h  37行,将其注釋(該處沒有仔細看會不會有影響)

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

5、重新運作BuildAll.bat,檔案格式有問題

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

解決方法:打開對應的工程 CommonUniversal.vcxproj,找到并輕按兩下打開TransformManager.h,然後儲存該檔案

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

6、重新運作BuildAll.bat,遇到SessionManagerUniversal.UI.csproj中SDK版本與本機環境版本不一緻

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

解決方法:文本編輯打開對應檔案,将版本号修改為14393(根據自己環境進行修改)

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

7、重新運作BuildAll.bat,在編譯java環境下運作的庫檔案時,遇到jni.h無法查找到

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

檢視對應的工程(ClientWindowsJava.vcxproj)的屬性,可以看到附加包含目錄中使用到了JAVA的環境變量 JAVA_INCLUDE

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

解決方法:添加系統環境變量,根據自己的安裝路徑進行修改田間。本文不講述如何安裝JDK,這個可以自行網上搜尋進行安裝

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

8、重新運作BuildAll.bat,在進行PreBuild時出錯

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

檢視對應的JavaTestApp.vcproj檔案,可以看到其中使用到了 JAVA_BIN環境變量

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

解決方法:添加JAVA_BIN環境變量(根據自己的路徑進行修改添加)。本文不講述如何安裝JDK,這個可以自行網上搜尋進行安裝

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

9、重新運作BuildAll.bat,再進行編譯,編譯成功。如讀者還遇到其它問題,可以google之。

最終編譯結果 儲存在 HoloToolkit-master\Sharing\SDK中。

Hololens入門之Sharing(HoloToolkit中SharingService.exe及SharingClient.dll的編譯)

繼續閱讀