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里,后面有空再写个教程

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