Win10+Qt5.6+MSVC2015+OSG3.4.0環…

說明

1.      本文主要用於配置OSG3.4.0Qt5.6上使用MSVC2015進行編譯

l  前期工作:安裝好Qt5.6MSVC2015,具體操作請參考:

http://blog.sina.com.cn/s/blog_89a45b020102whg2.html

l  本文在上一篇博客的基礎上進行環境搭建,也是在虛擬機中完成的。系統和環境變量都比較乾淨,因此環境搭建過程有較好的參考性。

 

2.      主要內容:

l  編譯osg3.4.0源代碼爲Qt5.6可以使用的庫文件

l  配置osg3.4.0Qt中的環境,以一個工程作爲示例

文件準備

1.      OpenSceneGraph 3.4.0源代碼:

http://www.openscenegraph.org/index.php/download-section/stable-releases/206-openscenegraph-3-4-0-released

2.      Cmake-gui,下載安裝包

https://cmake.org/download/

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

編譯庫文件:

1.      安裝CMake-guiInstall Options我選擇了“Add CMake to the system PATH for all users”,其它默認安裝

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

2.      以管理員身份打開“VS2015 X64 Native Tools Command”,進入一個命令行中

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

3.      從該命令行中進入CMKAE-gui.exe目錄下(默認安裝位置爲:C:\Program Files (x86)\CMake\bin),輸入cmake-gui.exe並執行,將彈出CMake-gui界面

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

4.      解壓縮osg3.4.0的源代碼到“C:\OpenSceneGraph-3.4.0”目錄,並新建一個工程目錄“C:\osg3.4.0”,設置CMake的“where is the source code”和“where to build the binaries”如圖所示,即剛纔的源代碼目錄和工程目錄。點擊Configure,後選擇工程項目爲“NMake Makefiles JOM”,點擊Finish後得到如圖所未,由於未將QtJom添加到環境變量中,因此CMake失敗

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

5.      臨時添加QtJom.exe以及qmake.exe到環境變量中。

l  關閉CMake-gui

l  在剛纔的命令行中輸入“path %path%;C:\Qt\Tools\QtCreator\bin”並執行,Jom.exe在該目錄中

l  輸入“path %path%;C:\Qt\5.6\msvc2015_64\bin”並執行,qmake.exe在該目錄中

l  再次用命令行打開CMake-gui,點擊Config,成功了一半

6.      重新配置CMake-gui

l  修改CMAKE-INSTALL_PREFIX參數,該目錄爲生成的庫文件目錄,將其修改到期望的地方,本文設置爲“C:/osg-lib”

l  勾選BUILD_OPENTHREADS_WITH_QT

l  修改CMAKE_BUILD_TYPE,默認爲Debug版本,也可以修改爲Release版本,本文以Debug版本爲例,Release好像有點問題,待研究

l  點擊Configure再次配置

l  Configuring done後點擊Genirate生成工程,Genorating done後關閉CMAKE-GUI

l  可以看到工程目錄下出現了很多文件,這些文件可以被Jom編譯

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

7.      編譯過程

l  從命令行中進入工程目錄,並執行“jom”開始進入漫長的編譯時間。

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

l  編譯完成後再次輸入並執行“jom install”,開始生成庫文件*.lib

8.      至此,Debug版本的庫文件已經生成,在目錄C:\osg-lib

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

9.      關於Release版本的庫

l  只需要在第6步中將CMAKE_BUILD_TYPE參數修改爲Release, 將CMAKE_DEBUG_POSTFIX的參數d刪除即可,其它操作相同

l  上面將CMAKE_DEBUG_POSTFIX的參數d刪除主要是爲了避免生成的庫文件後面帶有d,比如osgd.lib會變成osg.lib,爲了將Debug的庫與Release庫分開

 

Qt5.6下的OSG工程示例

說明:

由於Qt完全基於C++,因此OSGMSVC下能運行的示例程序,均可直接在Qt下運行。

 

1.      新建一個Qt工程,如下圖所示,採樣console工程,編譯套件務必使用MSVC2015 64bit


 Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置


Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

2.      向工程中添加庫文件

l  在工程名上右鍵添加庫>“外部庫”,隨便在剛纔生成的庫文件中找個.lib打開,如下圖配置

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

l  修改自動生成的.pro文件的庫配置部分,強行將所有的庫文件包含到工程中,建議採用相對路徑,採用絕對路徑可能會導致無法讀取到頭文件(很奇怪)

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

3.      添加main.cpp文件,將osg源代碼中的osggeometry.cppcode複製到工程中的main.cpp中即可,

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

4.      由於缺少osgdll文件,程序估計不能運行,有兩種方法解決:庫文件在目錄C:\osg-lib\bin

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

l  將庫文件的dll文件(包括osgPlugins-3.4.0文件夾)全部放到QT生成的可執行文件的要目錄中,如圖

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

l  或者將庫文件的目錄包括到環境變量中,如圖

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置

5.      運行Qt程序即可

Win10+Qt5.6+MSVC2015+OSG3.4.0環境配置


至此已經可以使用Qt Create進行OSG編程了,關於如何將OSG嵌入到Qt Widget裏,後面有空再寫個教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章