一步步编译OsgOcean

电脑:

操作系统:win7

编译器:vs2010

显卡:NVIDIA GeForce GTX 550Ti

准备工作

一 安装cmake

网络下载cmake,并安装;

我安装的是cmake-2.8.9-win32-x86.exe

二 下载OSG并编译

osgOcean 1.0.1是用osg开发的,所以要安装OSG,官网上说可以用OSG2.8.2编译,所以我下载了OSG2.8.2源码来编译。OSG的国外官网进不去,但是国内的osgchina可以下载源码,

网络地址:http://www.osgchina.org/projects/osgcn/wikicn/Downloads.php

目前下载OSG2.8.2只能通过该网址提供的svn来下载;下面是svn

http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.2b

编译OSG2.8.2

(一)  下载3rdParty_Win32binaries_2005_05_10.zip

可在http://www.osgchina.org/projects/osgcn/wikicn/Downloadscn/Dependencies.php下载

(二)  下载OpenSceneGraph-Data-2.0.zip

可在http://www.osgchina.org/projects/osgcn/wikicn/Downloadscn/SampleDatasets.php

(三)  通过cmake生成vs工程

将3rdParty_Win32binaries_2005_05_10.zip解压,将加压目录copy到osg2.8.2目录内

将OpenSceneGraph-Data-2.0.zip解压,将解压目录copy到osg2.8.2目录内

在osg2.8.2目录内建一个build目录,cmake会把vs工程产生到该目录下

打开安装的cmake,填写osgsource code目录与build binaries目录:

如图:

之后点击Configure,然后选择编译器

然后,点击finished

此时,cmake会显示出很多红色,表示需要配置,有些需要配置有些采用默认即可;

需要配置的相有:

ACTUAL_3DPART_DIR:填写上面解压3rdpart目录即可;编译32未程序,要包含x86子目录内容,如果64位填写x64目录,即:

E:\ocean\osg2_8_2b\3rdParty\x86或

E:\ocean\osg2_8_2b\3rdParty\x64

BUILD_MFC_EXAMPLE:选中

CMAKE_INSTALL_PREFIX:最后安装目录,也就是要把 bin目录,include目录,lib目录copy到该目录下,这样其他工程只要引用该目录内容,即可使用osg

点击generate,在build目录下回产生VS工程,打开工程build即可

用vs2010编译osg2.8.2会出现语法错误,如back_inserter错误,只要在文件开头包含

#include<iterator>即可

还可能遇到png错误,将

png_set_gray_1_2_4_to_8(png);

改为      png_set_expand_gray_1_2_4_to_8(png);

编译ALL_BUILD工程

编译INSTALL工程,此时可能遇到如下错误:

这个错误的意思是:

E:\ocean\osg2_8_2b\build\src\OpenThreads\win32目录下的中44行记录的

“E:/ocean/osg2_8_2b/build/bin/Debug/../../bin/ot11-OpenThreadsd.dll”找不到

把..翻译过来就是:“E:/ocean/osg2_8_2b/build/bin/bin/ot11-OpenThreadsd.dll”

根本不存在E:/ocean/osg2_8_2b/build/bin/bin/这个目录,查看E:/ocean/osg2_8_2b/build/bin/目录,发现ot11-OpenThreadsd.dll在E:\ocean\osg2_8_2b\build\bin\Debug目录下;

这个有两种办法解决这个问题:

方法一:“E:/ocean/osg2_8_2b/build/bin/Debug/../../bin/ot11-OpenThreadsd.dll”改成

E:\ocean\osg2_8_2b\build\bin\Debug

但是这种方法劳动量很大,很为工程中有cmake_install.cmake文件要修改;

方法二:把ot11-OpenThreadsd.dll copy到E:/ocean/osg2_8_2b/build/bin/目录下;

会有很多dll 需要copy;

再次build INSTALL工程,会出现如下错误:

意思是src/osgPlugins/osgAnimation/cmake_install.cmake文件的32行记录的

E:/ocean/osg2_8_2b/build/bin/Debug/../osgPlugins-2.8.2/osgdb_osganimationd.dll

找不到,解决方法同上面方法二;

Osg编译完毕

三 编译osgOcean

一 准备快速傅里叶变换库

有连个可用库:FFTW, FFTSS

我选择了FFTW,下载地址:

http://www.fftw.org/install/windows.html

加压之后,在启动vs命令行,并切换到解压目录:

然后运行如下三个命令:

    lib /def:libfftw3-3.def
     lib /def:libfftw3f-3.def
     lib /def:libfftw3l-3.def

然后会在目录中生成.h文件.lib文件,这也是编译时要连接的文件;

(二)编译osgOcean

首先采用上面用cmake生成osg工程的步骤产生osgOcean工程;

生成结构如下:

打开osgOcean.sln,

编译ALL_BUILD

会出现一大堆连接错误,原因是:

没有连接.lib文件,工程属性中添加所有osg的.lib文件

注意也要把快速傅里叶变换的库也加进来;

再编译一次,成功,完毕;

把oceanExample设置为启动工程,把工作路径设置为exe所在目录:

把E:\ocean\osgOcean\osgOcean-Source-1.0.1\osgOcean中的resources目录copy到上面的工作目录中,这样exe可以找到纹理文件等;

启动exe,成功;

四 其他

编译过程中可能出现如下错误:

error C3767:'<': candidate function(s) not accessible

可能原因有连个:

一:因为cmake产生vs工程的时候配置不对;从新用cmake产生一遍即可

二:osg库不是自己编译的,而是从网络上下载的已经编译好的osg;自己编译osg即可

本人从osgchina下载osg2.8.4已经编译好的osg,然后编译osgOcean,但是出现了上面一的错误,后来自己编译了osg2.8.2(从svn下载),并从新用cmake产生了工程,编译成功了;

这里没有深入研究;

还可能有如下问题:

我笔记本win7,显卡GTX540,Osg采用较新版本3.01,而不是osg2.8.2,虽然能编译成功,但是会黑屏,什么都显示不出来;目前不知道原因;

编译OSG及OsgOcean相关推荐

  1. 麒麟系统编译OSG、OSGEarth记

    文章目录 前言 一.代码准备 二.代码编译 注意事项 总结 前言 踩过深坑,走过断桥. 一.代码准备 下载OSG.OSGEarth源码以及所需的第三方依赖库. 中标麒麟编译顺序: autoconf-l ...

  2. windows平台下用CMake工具编译osg用法说明

    最近研究osg,用CMake工具将osg源码转为VS下的工程.解决方案,开始时不懂,走了很多弯路,现在将自己理解的记录如下: 1):在CMake图形界面中的"Where is the sou ...

  3. linux上安装osg_Linux下编译OSG全过程

    ziyan0621@126.com 在 Windows 下用 OSG 开发软件已经有了很长一段时间,最近由于有需要在 Linux 下开发一 套 3D 软件,所以查了一些 Linux 下 OSG 使用的 ...

  4. 银河麒麟OS编译OSG

    1. 下载cmake-3.12.1.tar.gz (1)解压 (2)进入源码目录 (3)./configure && make && make install 2. 下 ...

  5. 编译OSG的FreeType插件时注意的问题

    使用自己编译的freetype.lib,在编译osgdb_freetype插件项目时,报错LINK错误,找不到png的一堆函数 最简单的方式是不要使用PNG编译freetype.记住不要犯贱. 转载于 ...

  6. vs2013编译osg缺少mfc120d.lib

    因为MFC MBCS DLL缺少导致的,微软的解释如下(http://msdn.microsoft.com/en-us/library/dn251007.aspx): MFC libraries (D ...

  7. osg linux 环境配置,Linux环境下jdk1.8的下载与安装

    Linux环境下jdk1.8的下载与安装 1.下载 Oracle官网下载相应的版本,官网地址:https://www.oracle.com/java/technologies/javase/javas ...

  8. Android-ndk编译osgdb_3ds静态库

    Android版本的OSG不支持3ds插件(可以查看osg\src\osgPlugins\CmakeLists.txt文件,搜素'android'关键词,可以搜索到'IF(NOT ANDROID)   ...

  9. VS2013+OSG3.4.0+Qt5.5.1编译(超详)

    准备 第一步,下载所需要文件,编译osg需要三个文件osg.osg第三方库和osgdata,编译时需要用到cmake软件,我用的是vs2013和osg3.4.0 osg文件:http://www.op ...

最新文章

  1. 机器不学习:浅显易懂!「高中数学」读懂梯度下降的数学原理
  2. 用 Flask 来写个轻博客 (30) — 使用 Flask-Admin 增强文章管理功能
  3. 使用WinCrypt进行简单的对称加密实例
  4. cdev_alloc和cdev_init 的使用
  5. XML DOM Node List
  6. 认知行为技术是计算机技术吗,基于认知行为模型的多Agent建模技术研究与应用_问答库...
  7. 脚本语言php是什么意思,php是什么脚本语言
  8. 丰厚奖学金博士招生 | 澳大利亚OPTIMA 招募博士,多光谱时间序列数据的时空目标检测/分割方向...
  9. Android 系统(47)Android.mk的用法和基础
  10. Linq 中按照多个值进行分组(GroupBy)
  11. mex2 Inputs and Outputs
  12. 捕获键盘和鼠标的消息机制
  13. ubuntu18.04超级简单的安装wine QQ教程
  14. vecm matlab,VECM是什么?
  15. Android端记录跑步计步运动轨迹数据的App
  16. CFA大起底:三百六十度无死角详解CFA到底是个啥?
  17. 手机版浏览器f12_没有广告的浏览器??
  18. 各纬度气候分布图_【地理】气候类型的分布规律及分布图的判读 [图片]
  19. 路由器猫服务器未响应,怎么通过猫判断网络连接是否有问题
  20. QQ第三方登录(PC + 手机)

热门文章

  1. 最棒的程序代码,不是程序代码
  2. 2022-2028年中国水杯行业市场运营态势及投资战略规划报告
  3. Github 学生优惠包 -- 最新防踩坑指南
  4. 调用caffe2中pre-trained model(squeezenet)
  5. 全景丨VR全景制作全流程系列教程,第七节:720VR全景,组装云台和脚架
  6. scp带密码拷贝文件
  7. Spring idea中spring配置文件自动检查配置应用程序上下文的操作
  8. 基于最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇系统性实践技能提升
  9. qq上怎么设置拍一拍?1分钟学会,简单教学
  10. 现代城市生态与环境学题库