編譯opencv
編譯opencv的原因及要求
由於SensorSDK中的幾個sample依賴opencv,所以需要將opencv相關的庫包含到項目中來。
具體來說,依賴於opencv_world.dll動態庫。
又由於我們需要使用VS2019來編譯sensorSDK,因此最好也使用VS2019來編譯opencv,但是低版本的opencv不支持cmake生成vs2019的工程,所以需要下載最新的opencv的源碼,我這裏下載的是opencv-4.3.0.
cmake編譯opencv的方法
參考:https://blog.csdn.net/Chris_zhangrx/article/details/79090463
configure
只需要注意一點,由於samples程序依賴於opencv_world這個總體庫,所以需要在cmake中勾選 Build_opencv_world這個選項 如下圖所示:
然後在彈出的編譯選項框中選擇生成VS2019 64位的項目即可。
generate
無特殊要求
VS2019編譯opencv
在cmake中執行generate後,會生成opencv.sln解決方案,直接打開這個解決方案,
分別編譯debug x64版本,和 release x64版本。編譯完成之後,會在分別在bin目錄下和lib目錄下生成兩個文件夾Debug,Release。 bin目錄下保存的各個模塊的動態庫包括opencv_world430d.dll, lib目錄下保存的是lib庫,如opencv_world430d.lib。
編譯SensorSDK源碼
cmake 生成SensorSDK vs2019的項目
最重要的一點就是在configure的時候,把OpenCV_DIR這個變量指向上面opencv的編譯結果中(即上面提到的bin和lib這兩個目錄所在的目錄), 我的目錄是D:/Code2020/opencv-4.3.0/build/VS2019。
有兩種方法指定,一是在環境變量中添加OpenCV_DIR環境變量,並將其值設置爲D:/Code2020/opencv-4.3.0/build/VS2019。 第二種方法是,直接在CMake工具中修改OpenCV_DIR變量的值爲D:/Code2020/opencv-4.3.0/build/VS2019,如下圖所示。
編譯選項配置時,也是選擇生成VS2019 64位工程。
VS2019編譯SensorSDK
打開用cmake生成的obsensor.sln解決方案。選擇 Debug,x64.
先通過生成-》重新生成解決方案,整體編譯一遍,第一遍編譯會遇到錯誤(主要問題是找不到obsensord.lib,由於obsensord.lib還沒生成),不要關注。
再次 通過生成-》重新生成解決方案 編譯一遍就可以編譯成功。
期間還有編譯unit_tests project時,找不到obsensord.lib。手動在unit_tests project 屬性中
附加目錄下增加D:/Code2020/OrbbecSensorSDK/obsensor/build/lib/Debug 這條配置,讓其可以找到obsensord.lib就行。