声明:本文章是查看了被人的配置教程,进行了自己问题的修改后,用作记录配置过程的(属于转载)原文课参考:
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
OSG环境部署
1. 准备工作
为了,能够方便后续进行具体的环境配置工作,首先将整个过程需要的所有东西提前准备,并单独使用一个文件夹进行保存,方便后续使用。
1.1 OSG源码下载
OSG3.6.5稳定版下载,下载地址: OpenSceneGraph-3.6.5 release download
下载 OpenSceneGraph-OpenSceneGraph-3.6.5.zip
1.2 OSG依赖下载
下载地址: Dependencies
里面有各种版本的第三方依赖库,下载自己需要的就可以了,但是必须和自己的编译器版本保持一致。我下载的是2017版本的 3rdParty_VS2017_v141_x64_V11_full.7z。
1.3 数据包下载
下载地址:Data Resources
下载的是 OpenSceneGraph-Data-3.4.0.zip
1.4 编译工具下载
编译工具选择的是CMake,官网上推荐2.6.x:
直接下载最新版的CMake,下载地址:Download | CMake
下载的是 cmake-3.21.3-windows-x86_64.msi
建议:为了避免出现一些奇奇怪怪的问题,尽量下载与文章相同版本的。
2. 编译代码
2.1编译前的准备
在编译之前提前将各个文件存储好,并单独用文件存储。
单独列出一个OSG文件夹,创建四个文件夹按照图片一样的进行命名。
注:不是强制要求,为了后续方便也可自行命名,但后续记得更改为自行命名的。
- 3rdParty: 用于存放解压后的 3rdParty_VS2017_v141_x64_V11_full.7z 文件
- build: 用于存放编译后的文件(后续会用)
- Data: 用于存放解压后的 OpenSceneGraph-Data-3.4.0.zip
- OpenSceneGraph-3.6.5: 用于存放解压后的OpenSceneGraph-OpenSceneGraph-3.6.5.zip 文件
各个文件夹内容:
2.2编译代码
需要使用CMake,将前面下载的编译工具进行默认安装即可。
打开安装目录下bin文件夹中的exe文件。
可以通过浏览文件,也可以直接在输入框里面填写路径。
注:因为我的build文件已经编译过了,为了给大家演示,我重新搞了一个文件夹,大家在编码过程中还是直接使用开始提前准备好的文件夹就好。
路径填写完成之后点击Configure。
之后会弹出这个,一定要根据自己的编译器版本进行旋转,第二个框内一定要旋转x64(本文配置的全是x64的)然后点击Finish。然后等待Configure完成。
然后就会出现红色的需要修改的东西。
所有需要勾选和需要修改的地方我这边提前给大家选好!
注:这里我使用的又是我编译好的路径,所以不需要管build还是build2
两个箭头。
第一个箭头表示要修改路径:修改为准备工作里面3rdParty的路径。
第二个箭头表示这一页需要勾选的东西
这里的Advanced也记得勾选上
然后在此点击Configure。
发现还是有红色的需要选择的。
BUILD_MFC_EXAMPLE进行选择。
在这之前一定要检查自己的编译器是否选择了MFC插件。
检查方法:
打开编译器安装软件
勾选过的,就没问题,没有勾选的,就先去安装一下然后再回来。
检查完是否安装MFC插件以后。
再次点击Configure。红色内容消失。
然后点击Generate。等待完成。
这一步就暂且完成了。
3. 生成库文件
现在就需要进行库文件生成了。在构建好的build文件夹里面找到.sln文件,使用VS2017打开。
因为我们使用的平台是win10,而生成的代码里面是xp的所以会有冲突。先解决这个冲突。
打开项目后在解决方案资源管理器里面搜索stdafx.h并打开。
黑色箭头是原有的,红色箭头是修改的。
然后就可以进行库文件的生成了。
首先点开生成,然后批生成。
Debug和Release,点击生成即可。需要较长的时间。
正常情况不会出现问题。
再对INSTALL进行生成。
等待完成即可,到这里,生成的工作暂且结束。
4. 配置环境变量
进入到系统变量,将数据文件进行系统变量的添加。(为了可以读取数据)
在系统变量里面的Path里面添加编译好的build文件夹中的bin路径。
5. 测试
目前配置工作告一段落了。
5.1在CMD中进行测试。
输入 osgversion
能够出现osg的版本信息,表示成功一部分了。
然后输入 osglogo
能够出现下面的样式,字体能够正确现实,且里面的地图是在转动的就可以了。
但是一般情况会出现字体显示不清楚,且中间没有地球的情况。
需要修改CMake里面的配置。
第一步:取消OSG_TEXT_USE_FONTCONFIG的勾选。
第二步:配置freetype路径:(按照图片进行填写即可)
第三步:配置JEPG的路径:(按照图片进行填写即可)
然后再点击Configure->Generate,之后再打开build文件夹中的.sln文件,再次生成ALL_BUILD,然后再 INSTALL。
然后重新CMD,osglogo。出现下面的样子就是正确了。
字体也清楚了,地球也在转动了。
5.2 新建项目测试。
在vs2017中新建C++控制台程序项目。
需要配置一下环境。
点击项目,然后进行属性。
将build文件夹的include路径像图中一样的进行填写。
第二步。
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
(注:在编译生成的lib文件中,每个lib文件有一对名称相似的文件,其中文件名最后一个字母为“d”的为Debug版本所使用的,没有“d”的为Release版本所使用的。)
然后将build文件夹中的lib路径按照下图进行配置。
最后在CPP文件中进行如下代码的填写。
#include <Windows.h>
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main(int argc, char **argv)
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
return viewer.run();
}
编译,运行:
结果为:
好的,恭喜你,开启了OSG之路。
本文章为转载。