OSG环境配置
前言
最近开始学习osg,免不了涉及到编译osg的开源库,如果不想编译的话可以直接去官网下载编译好的msvc版本。但是osgearth暂时没有找到直接编译好的。对于Windows编译开源库最近的心得是不要使用mingw进行编译,很多开源库都无法编译过去,还是使用msvc编译。编译开源库,发现一款微软的神器vcpkg,相当于是windows上的包管理器,他会自动下载源码然后进行编译,默认使用vs2017,没有的话使用vs2015。目前只支持这两款。
VCPKG
下载地址
使用方法
1、先将项目克隆到本地,然后打开vs的命令行工具运行项目下的脚本bootstrap-vcpkg.bat,结束之后会在项目底下生成一个vcpkg.exe。将当前exe目录添加到环境变量中方便使用。
2、搜索包
1 |
|
lib是你需要搜索的包名,我们搜索一下osg,结果如下:
3、安装包
1 |
|
默认不指定编译器位数的话编译32位,想要编译64位需要后面指定:x64-windows。这里我们编译64位osg,整个时间大概2个小时。
4、下载缓慢解决方法
使用vcpkg自动下载源码的时候经常会比较缓慢,所以我们可以把自动下载的地址复制出来,然后自己去网页上下载,下载完之后拷贝到downloads目录,这是他的文件下载目录。然后在自动下载的时候进入downloads/temp文件夹看一下,他下载的文件名称。有可能下载的同一个源码,但是文件名称不一致,导致vcpkg识别不了,需要将你下载的文件名称改成和temp里面的缓存文件名称一致,然后重新安装,这个时候他就会启用你下载的版本,不会自动下载了。
OSG环境配置
vcpkg编译的结果是debug和release分开了,后缀使用d区分。但是实际使用的话很麻烦,所以我将两个版本合并。新建一个osg目录,将include目录拷贝进去,然后将两个版本的lib和bin目录拷贝进去,然后把tools/osg目录里面的东西直接剪切到bin目录里面,然后在osg根目录新建一个data目录,用来存放数据,数据直接从官网下载即可,datal链接。将数据解压后拷贝到data目录即可。然后添加环境变量,在用户环境变量里面将新的osg/bin目录添加到path,然后新建一个环境变量OSG_FILE_PATH,值是osg/data目录,这样后续代码里面直接加载测试文件的时候可以不用带路径。
这个tools/osg目录里面存在许多编译好的工具,后续会使用到,然后目录下有个osgPlugins-3.6.3,这里面有osgDB的插件,不把它放在bin目录里面会导致后续使用osgDB库时,无法读写osg或者其他格式文件。