hillpig的个人博客分享 http://blog.sciencenet.cn/u/hillpig 畅想ing,思考ing,前行ing Email:bluevaley@gmail.com

博文

OSG+QT开发环境搭建

已有 19354 次阅读 2016-2-13 18:52 |个人分类:qt|系统分类:科研笔记

首先讲结论,不建议用OSG+QT做开发环境,而是直接用visual studio。

鉴于搭建环境会经常出错,这里记录下来(本篇是基于http://blog.csdn.net/bbppbb/article/details/45697731 完善的)。

1. 软件准备

A. qt-opensource-windows-x86-vs2010-4.8.6.exe 用于编译osg时使用(先安装)

B. qt-opensource-windows-x86-msvc2010_opengl-5.3.0.exe 用于开发时使用(由于4.8.6无creator,但是4.8.6支持opengl,而不是qt5自己写的库)

C. OpenSceneGraph-3.2.1-rc2.zip,以及第三方插件osg-3rdparty(参考https://github.com/bjornblissing/osg-3rdparty-cmake)

  • freetype-2.6.tar.gz

  • giflib-5.1.1.tar.gz

  • glut37.zip

  • jpegsr9a.zip

  • lpng1621.zip

  • minizip-master.zip

  • osg-3rdparty-cmake-master.zip

  • tiff-4.0.4.zip

  • zlib128.zip

D. cmake-2.8.12.2-win32-x86.exe

E. cn_visual_studio_2010_ultimate_x86_dvd_532347.iso,注意是32位,先安装

环境:OS:windows 8.1 64bit

工作目录:D:/qt/

2. 编译osg-3rdparty

a. 打开cmake-gui选中osg-3rdparty源代码,并设定想要放置工程的目录,如下图:


点击Configure按钮,选择vs2010, 生成的结果如下图:

配置(注意 坑爹的反斜杠):


点击configure:

点击generate。

然后在vs2010中打开该项目:


右键ALL_BUILD->生成,完成会在工程所在目录下面生成lib目录其中有两个目录Release和Debug,然后再右键点击INSTALL工程分别在Debug和Release模式下右键生成,就会在工程目录看到如下文件夹3rdParty。


目录如下:


把目录调整一下,去掉v100-x86,直接把下面的文件剪切到上一级,即如下:


目的是为了方便OSG的Cmakelist设置。(放在和后面OSG源代码同级目录下)

3. 编译OSG

解压OSG源代码文件,本文要使用qt4的库(注意)来编译OSGQT的组件,因此这里需要修改osg根目录下的Cmakelist.txt文件(非常重要),添加如下两句(在文件开始添加即可)

set(DESIRED_QT_VERSION "4" CACHE STRING "")

set(CMAKE_PREFIX_PATH "D:\qt\4.8.6" CACHE PATH "")


(注意上面的路径修改成你QT4安装的路径)
重新打开cmake-gui,设置源代码和工程目录,如下:

将上一节生成的3rdParty目录拷贝到和OSG代码同级目录,我这里就是D:qtosgosg-qt4-vs2010,点击Configure之后选择vs2010,想要编译osg自带例子的话勾选如下(这里没勾选)


选好之后可以重新点击Configure按钮将红色选项确定一下,注意查看变红的选项,如果觉得都配置可以就一直点击Configure,一直到全部选项不为红,再点击Generate按钮,生成最后的工程文件。工程目录如下:


使用vs2010打开工程(一定要用管理员权限打开vs,否则给生成的库install不了c盘上),在debug和release模式下分别生成ALL_BUILD,等一个小时左右后,再点击INSTALL,如下图:

最后,生成在C:Program Files (x86)OpenSceneGraph:


4. 配置环境变量:

在PATH 最后加上:

C:Program Files (x86)OpenSceneGraphbin;D:qt4.8.6bin;C:Program Files (x86)OpenSceneGraphshareOpenSceneGraphbin

5. QT中创建项目

用qt5.3 creator新建项目,注意option里的构建用4.8.6的:


在项目-》 构建和运行里,构建步骤加上install,如:jom.exe install in D:qtprojectiBuilding_haidianyuan


在项目名.pro文件里加上:

QT +=core gui opengl

以及:

#自定义build的输出路径,以及子文件夹,如data/CONFIG(release,debug|release):DESTDIR=build/releaseCONFIG(debug,debug|release):DESTDIR=build/debugOBJECTS_DIR=$$DESTDIR/.objMOC_DIR=$$DESTDIR/.mocRCC_DIR=$$DESTDIR/.qrcUI_DIR=$$DESTDIR/.uidata.path=$${DESTDIR}/datadata.files=data/*INSTALLS+=data


#添加依赖库,及头文件INCLUDEPATH+=$$PWD/3rdparty/OpenSceneGraph/includeDEPENDPATH+=$$PWD/3rdparty/OpenSceneGraph/include
win32:CONFIG(release,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgelse:win32:CONFIG(debug,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgdelse:unix:LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losg
win32:CONFIG(release,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgDBelse:win32:CONFIG(debug,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgDBdelse:unix:LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgDB

win32:CONFIG(release,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgViewerelse:win32:CONFIG(debug,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgViewerdelse:unix:LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgViewer
win32:CONFIG(release,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgUtilelse:win32:CONFIG(debug,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgUtildelse:unix:LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgUtil
win32:CONFIG(release,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgQtelse:win32:CONFIG(debug,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgQtdelse:unix:LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgQt
win32:CONFIG(release,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgGAelse:win32:CONFIG(debug,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgGAdelse:unix:LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-losgGA
win32:CONFIG(release,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-lOpenThreadselse:win32:CONFIG(debug,debug|release):LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-lOpenThreadsdelse:unix:LIBS+=-L$$PWD/3rdparty/OpenSceneGraph/lib/-lOpenThreads

点击build,然后run,若成功,则大功告成。
哎,简直要命,所以还是回到最开始那句话,别用qt了,还是用vs吧,坑太多。


加我私人微信,交流技术。





https://wap.sciencenet.cn/blog-419883-955964.html

上一篇:postgresql中比较real类型相等的正确方法
下一篇:使用PostgreSQL中的row_to_json()直接获得JSON(PG JSON系列1)
收藏 IP: 223.72.72.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-17 19:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部