OSG編譯安裝-MSVC
1、準備作業
1.1 環境
-
Windows10
-
Qt5.14.2
-
Microsoft Visual Studio2017
-
cmake-3.20.4-windows-x86_64.msi
1.2 osg下載
-
osg官網
-
github
-
OSG原始碼(OpenSceneGraph)
-
下載網址
-
也可使用git下載:
git clone --branch OpenSceneGraph-3.6.5 https://github.com/openscenegraph/OpenSceneGraph.git
-
-
依賴庫(3rdParty)
-
下載地址
-
這里選擇已經編譯好的VisualStudio 2017版本庫
-
-
資料資源(OpenSceneGraph-Data)
-
下載地址
-
這里選擇最新版OpenSceneGraph-Data-3.4.0.zip
-
2、Cmake編譯
-
打開Cmake,將OpenSceneGraph檔案夾下的CMakeLists.txt檔案拖進Cmake中,創建build檔案夾并在Cmake中指定路徑;

-
點擊configure,選擇vs2017、x64(由于下載的依賴庫為64位,所以這里如果要編譯32位的只能自己編譯依賴庫),注意如果是安裝了多個版本vs,需要選擇Specify native compilers,我這里只安裝了一個版本;

-
指定依賴庫路徑ACTUAL_3RDPARTY_DIR

-
勾選BUILD_OSG_EXAMPLES(可選擇不勾選)

-
修改安裝路徑CMAKE_INSTALL_PREFIX

-
點擊configure直到沒有紅色,然后點擊Generate,等待生成VS解決方案,生成完成后點擊Open Project打開VS

3、Visual Studio編譯
-
打開解決方案后,選擇Debug、x64

-
右鍵ALL_BUILD,點擊生成,等待兩小時就可以編譯完成,然后選擇Release再編譯一次

-
右鍵INSTALL,點擊生成就可以在之前指定的安裝路徑下(CMAKE_INSTALL_PREFIX)生成編譯好的檔案了


-
將依賴庫和資料資源檔案拷到編譯后的檔案路徑處

4、添加環境變數
-
打開系統環境變數

-
添加如下環境變數,注意路徑換成自己的,然后保存,重啟電腦使環境變數生效

5、測驗安裝
-
可測驗命令
-
osgversion
-
osglogo
-
osgviewer
-
-
打開cmd
-
輸入:osgversion

-
輸入:osglogo

-
輸入:osgviewer D:\OSG\OpenSceneGraph-Data\cow.osg

6、Qt程式
-
新建一個Qt工程,選擇編譯器位MSVC2017-x64(需要配置)
-
打開.pro檔案,添加下列代碼(路徑換成自己的)
INCLUDEPATH += D:/OSG/install/include DEPENDPATH += D:/OSG/install/include ? win32:CONFIG(release, debug|release): LIBS += -LD:/OSG/install/lib/ -losg else:win32:CONFIG(debug, debug|release): LIBS += -LD:/OSG/install/lib/ -losgd ? win32:CONFIG(release, debug|release): LIBS += -LD:/OSG/install/lib/ -losgViewer else:win32:CONFIG(debug, debug|release): LIBS += -LD:/OSG/install/lib/ -losgViewerd ? win32:CONFIG(release, debug|release): LIBS += -LD:/OSG/install/lib/ -losgDB else:win32:CONFIG(debug, debug|release): LIBS += -LD:/OSG/install/lib/ -losgDBd
-
或者右鍵工程,選擇添加庫

-
選擇需要添加的庫,然后點擊確認即可

-
添加下列代碼
#include "widget.h" ? #include <osgViewer/Viewer> #include <osgDB/ReadFile> ? int main(int argc, char *argv[]) { ? QString osgPath = "D:/OSG/OpenSceneGraph-Data/avatar.osg"; // 換成自己的路徑 ? osgViewer::Viewer viewer; // 創建查看器 osg::Node * node = new osg::Node; node = osgDB::readNodeFile(osgPath.toStdString()); // 讀取模型檔案,賦值給節點指標 viewer.setSceneData(node); // 查看器中添加該節點 return viewer.run(); // 運行查看器 }
?
-
編譯運行結果如下

7、編譯好的庫
鏈接:https://pan.baidu.com/s/1UfNbJ0fUAzKfe3XrWNVTDA
提取碼:66tf
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/288532.html
標籤:C++
