VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

这篇具有很好参考价值的文章主要介绍了VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网上搜索发现关于这几个库编译过程的文章甚至要订阅才能看,在此做个详细记录。

工具与环境

这里使用的 cmake-3.18.3 、 VS2019 和 Qt5.15.2 进行编译。

一、编译OSG3.7.0

1、下载

下载不多赘述,在github上下master版本就是3.7.0版本。
另外还需要 3rdParty_VS2017_v141_x64_V11_fullOpenSceneGraph-Data-3.4.0 可以在OSG英文官网中下载到。

2、cmake编译

将OSG3.7.0源码、3rdParty_VS2017_v141_x64_V11_full、OpenSceneGraph-Data-3.4.0解压到合适的目录,并新建一个文件夹用于保存cmake生成的项目。如下图,这里我放在了同级目录下。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后打开cmake,在最上面第一栏选择OSG源码中CMakeLists文件所在文件夹的路径,第二栏选择上面自己新建的文件夹路径,然后点击Configure按钮,会弹出如下图子界面,第一栏选择VS2019,第二栏选择x64点击Finish按钮,cmake开始加载。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
等待加载完成,会显示一片红,并在下面的log中显示一些库找不到。VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击Ungrouped Entries项展开,在第一项ACTUAL_3RDPARTY_DIR中选择3rdParty_VS2017_v141_x64_V11_full中的x64文件夹路径。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击BUILD项展开,勾选BUILD_OSG_EXAMPLES项。
点击CMAKE项展开,将CMAKE_INSTALL_PREFIX项的路径修改为最上面创建的文件夹中的OpenSceneGraph文件夹(目录下没有这个文件夹没关系,INSTALL时会自动创建)。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击OPENGL项展开,修改OPENGL_HEADER1项为
#include <GL/glcorearb.h>,修改OPENGL_PROFILE项为GL3。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
注意: OSGEarth3.3版本必须要OSG支持GL3,所以需要下载另外的GL API文件。
下载地址:
https://github.com/KhronosGroup/OpenGL-Registry
https://github.com/KhronosGroup/EGL-Registry
将第一个的GL文件夹和第二个的KHR文件夹复制到OSG源码的include目录下。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击OSG项展开,
勾选

OSG_GL3_AVAILABLE

取消勾选

OSG_GL1_AVAILABLE
OSG_GL2_AVAILABLE
OSG_GLES1_AVAILABLE
OSG_GLES2_AVAILABLE
OSG_GL_DISPLAYLISTS_AVAILABLE
OSG_GL_FIXED_FUNCTION_AVAILABLE
OSG_GL_MATRICES_AVAILABLE
OSG_GL_VERTEX_ARRAY_FUNCS_AVAILABLE
OSG_GL_VERTEX_FUNCS_AVAILABLE

修改OSG_GL_CONTEXT_VERSION项为3.3。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后一直点击Configure按钮直到没有红色项,从下面log可见部分库已经找到(如果没有其他要求,官网下的依赖包中的库应该就已经足够,不需要额外再下别的库了),然后点击Generate按钮,等进度条走完,下方log显示Generating done,即项目生成结束。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

3、VS2019编译

打开生成的项目目录,点击sln文件打开项目,点击最上方功能栏生成-批生成,在弹出的子窗口中勾选ALL_BUILD的Debug和Release,然后点击生成按钮,下方输出中显示“已启动生成…”,项目开始编译。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
**注意:**应该会出现报错,这是因为宏GL_EXT_texture_compression_s3tc已经在glcorearb.h中定义,需要注释掉osg/Texture文件中第60和69行。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
接着等待编译完成,应该是不会有失败的。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后再次打开批生成,将ALL_BUILD的两个取消勾选,找到INSTALL勾选Debug和Release,点击生成按钮,等待完成。
再之后,打开之前CMAKE_INSTALL_PREFIX项中设置的目录,即是生成好了的库文件。注意:这个目录的include中是不带之前的GL和KHR文件夹的,记得手动复制过来。

4、测试

新建一个控制台项目(如何引入库头文件和库文件这里不再赘述),输入以下内容(glider.osg可以在OpenSceneGraph-Data-3.4.0中找到):
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
运行,如果出现一个紫色的滑翔机,应该就没什么问题了。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
注意:因为开启了GL3,所以会对有些渲染不兼容,导致glider.osg和cow.osg的显示效果与通常的有所不同。

二、编译OSGEarth3.3

1、下载

下载不多赘述,在github上下master版本就是3.3版本。
不过要注意的是在src/third_party下三个蓝色链接的项目需要手动下载然后拷贝到此目录下。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
必要的还有sqlite3,另外我这里还编译了glew。

1.1、编译sqlite3

1.1.1、下载

下载地址:https://sqlite.org/download.html
这里下载下图两个包,第二张图下载x64版本,下载解压完成后,将文件复制到同一个目录。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

1.1.2、编译

打开VS2019,新建一个空项目,起名为sqlite3。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
将下载的sqlite的所有文件复制到项目目录下。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后右键项目,添加现有项。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
右键项目属性,将常规中的配置类型设置为动态库(.dll),在目标文件名后加d(这个仅Debug设置),设置链接器-输入中模块定义文件为sqlite3.def,在C/C+±预处理器中预处理器定义中添加以下宏:

SQLITE_CORE
SQLITE_EXPORTS
SQLITE_ENABLE_FTS3
SQLITE_ENABLE_FTS5
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_SESSION
SQLITE_ENABLE_PREUPDATE_HOOK
SQLITE_ENABLE_DESERIALIZE

记得Debug和Release都要设置。然后点击生成-批生成,勾选Debug和Release,点击生成,
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
等待编译完成。在生成目录下就可以看到生成的Debug和Release的lib和dll了。再记得创建一个include文件夹将.h文件复制进去。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

1.2、glew

glew可以直接下载编译好了的文件,直接下载Binaries即可。
下载地址:http://glew.sourceforge.net/
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
解压后,将bin和lib中x64目录下glew.dll和glew32.lib复制出来(glew32s.lib是静态库,这里我们需要动态库,所以取glew32.lib即可),复制到一个新的文件夹,将include文件夹也复制进去。

2、cmake编译

开始部分与OSG编译一致,新建一个文件夹用于保存cmake生成的项目,cmake最上面第一栏选择OSGEarth源码中CMakeLists文件所在文件夹的路径,第二栏选择上面自己新建的文件夹路径,点击Configure按钮,然后选VS2019和x64,点击Finish按钮,等待加载。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
载入完成后跟前面的有一点不同的是,应该会弹出Error提示窗,这里不用担心,查看log信息,大概率是有库找不到,手动输入一下就行,这里提示的是找不到curl库,这个库在OSG的3rdParty包中有,不需要额外去下。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
上面还是一片红,顺着来处理。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击CMAKE项展开,将CMAKE_INSTALL_PREFIX项的路径修改为创建的项目文件夹中的OSGEARTH文件夹(目录下没有这个文件夹没关系,INSTALL时会自动创建)。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击CURL项展开,INCLUDE设置为OSG的3rdParty包中include目录,此目录下可见有curl文件夹,DEBUG和RELEASE设置为3rdParty包中lib目录下的libcurl_impd.lib和libcurl_imp.lib文件。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后就是下面一系列有关OSG的依赖,只用点开OSG项,在第一个OSG_DIR中设置之前OSG的CMAKE_INSTALL_PREFIX项设置的路径,然后点击
Configure按钮,刷新完成应该会再次弹出Error提示窗,这次应该是找不到GDAL,依次点开OSG相关的项,应该就都自动找到了。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击GDAL项展开,INCLUDE输入3rdParty的include目录,LIBRARY输入3rdParty的lib目录中的gdal_i.lib。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击Configure按钮,应该不会弹出Error提示窗了,不过会新增一系列其他依赖库选项,请根据需要自行下载,这里只设置GLEW和SQLITE3。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击GLEW项展开,设置INCLUDE为之前glew的include目录,SHARED_LIBRARY_DEBUG为glew32d.lib,SHARED_LIBRARY_RELEASE为glew32.lib。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击SQLITE3项展开,设置INCLUDE为之前sqlite3的include目录(这里我没有新建单独的include文件夹,.h文件直接放在了根目录下),LIBRARY为sqlite3.lib。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击OSGEARTH项展开,这里有几种NodeKit,可以根据需要勾选,勾选后可能会需要另外的第三方依赖(例如Triton和Silverlining),请自行下载,这里我就保持默认,然后仅勾选OSGEARTH_INSTALL_SHADERS项。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
最后点击Generate按钮,等待项目生成完毕。

3、VS2019编译

跟之前的一样,点击生成-批生成,在弹出的子窗口中勾选ALL_BUILD的Debug和Release,然后点击生成按钮,等待生成完成,应该是不会有失败的。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后再次打开批生成,将ALL_BUILD的两个取消勾选,找到INSTALL勾选Debug和Release,点击生成按钮,等待完成。
再之后,打开之前CMAKE_INSTALL_PREFIX项中设置的目录,即是生成好了的库文件。

4、测试

找个地方新建一个文件夹,将bin中的osgearth_viewer.exe复制进去,再将OSGEarth源码目录下的data文件夹中的world.tif复制进去,然后新建一个txt文件,后缀改为.earth,内容写:

<map>
<GDALImage name="test">
    <url>world.tif</url>
</GDALImage>
</map>

VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后将OpenSceneGraph和OSGEARTH的bin目录下的所有dll以及osgPlugins文件夹复制到此目录,将3rdParty的bin目录下的所有dll复制到此目录,将sqlite3.dll也复制到此目录(其实这里应该区分一下Debug和Release的dll,将需要的复制进去,不过是测试就不考虑这么多,如果要用于实际项目,建议还是要做下区分)。
接着运行cmd,用cd命令切换到此目录下,然后输入osgearth_viewer test.earth,按下回车。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
如果出现了一个粗糙的地球,应该就没什么问题了。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

三、编译OSGQt

1、下载

下载不多赘述,在github上直接下的master版本。

2、cmake编译

前面的和之前一样,新建一个文件夹用于保存cmake生成的项目,cmake最上面第一栏选择OSGQt源码中CMakeLists文件所在文件夹的路径,第二栏选择上面自己新建的文件夹路径,点击Configure按钮,然后选VS2019和x64,点击Finish按钮,等待加载。
然后会弹出Error提示窗,查看下面log是找不到OSG相关的库,这里要麻烦一点,需要一个个的手动填写。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后点击Configure按钮,会弹出Error提示窗,查看下面log是找不到Qt相关的库。
点击Ungrouped Entries项展开,设置Qt5_DIR为:
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击CMAKE项展开,将CMAKE_INSTALL_PREFIX项的路径修改为创建的项目文件夹中的OSGQt文件夹(目录下没有这个文件夹没关系,INSTALL时会自动创建)。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
点击Configure按钮,应该是没有报错了,log中有一些红色的Warning文本,这个可以不用管,然后点击Generate按钮,等待项目生成完毕。

3、VS2019编译

打开项目,注意: 双击打开Header Files中的osgQOpenGLWidget和osgQOpenGLWindow,将第15行 #define _gl_h 的注释解开,因为默认下会导致启用系统的gl.h文件,并与之前下载的glcorearb.h文件产生冲突,出现接口重定义的问题。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
接着跟之前的一样,点击生成-批生成,在弹出的子窗口中勾选ALL_BUILD的Debug和Release,然后点击生成按钮,等待生成完成,应该是不会有失败的。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后再次打开批生成,将ALL_BUILD的两个取消勾选,找到INSTALL勾选Debug和Release,点击生成按钮,等待完成。
再之后,打开之前CMAKE_INSTALL_PREFIX项中设置的目录,即是生成好了的库文件。

4、测试

找个地方新建一个文件夹,将项目目录下bin中的osgviewerQt.exe复制进去,再在开始菜单中找到Qt 5.15.2(MSVC 2019 64-bit),点击打开。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
用cd命令切换到此目录,然后输入

windeployqt osgviewerQt.exe

回车,它会将exe需要的Qt库复制进去。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
然后将OpenSceneGraph的bin目录下的所有dll以及osgPlugins文件夹复制到此目录,将osgQt的bin目录下的osg145-osgQOpenGL.dll复制到此目录,将3rdParty的bin目录下的所有dll复制到此目录,将之前用到的glider.osg也复制到此目录(其实这里应该区分一下Debug和Release的dll,将需要的复制进去,不过是测试就不考虑这么多,如果要用于实际项目,建议还是要做下区分)。
接着运行cmd,用cd命令切换到此目录下,然后输入osgviewerQt glider.osg,按下回车。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt
如果出现了一个小窗体,上面是之前看过的紫色滑翔机,应该就没什么问题了。
VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

四、结语

至此,所有的编译就均已完成。文章来源地址https://www.toymoban.com/news/detail-401657.html

到了这里,关于VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT+OSG/osgEarth编译之八十八:osgdb_pic+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_pic)

    PIC(Pixel Image Format)是一种用于存储和表示图像数据的文件格式。它最初由软件公司Softimage开发,用于存储计算机生成的图像和动画序列。 PIC格式使用无损压缩算法,可以保存包含颜色和亮度信息的图像。它支持灰度图像、彩色图像和Alpha通道(用于透明度)。PIC文件通常具

    2024年02月20日
    浏览(56)
  • vs2015、vs2017、vs2019、msvc自动编译脚本

    rem 记录编译时间 echo ** 版本构建开始时间: %date% %time% build.log rem 设置编译器进程名 set DstProgram=devenv.exe rem 搜索目标进程以及其目录 echo 正在搜索\\\"%DstProgram%“, 请稍候… for %%a in (“C:Program Files (x86)”, “C:Program Files”, “D:Program Files (x86)”, “D:Program Files”) do for /f “delim

    2024年02月06日
    浏览(82)
  • VS2019远程编译arm程序

    目录 第一步、远程连接arm 第二步、选择编译器 第三步、选择好后配置JSON文件 第四步、进行Cmake远程编译 第五步、开始编译 打开vs2019 选择 【工具】--【选项】--【跨平台】连接远程arm 添加linux -GCC编译器 以上完成后就可以按照一般的方式对cmake跨平台的代码在远程arm上进行

    2024年02月08日
    浏览(48)
  • vs2019 中编译和使用 protobuf 库

    protobuf 是一种跨平台的序列化结构数据的方法,可用于网络数据传输及存储。 本文对使用 vs2019 编译 protobuf 库文件进行说明,相关代码及安装文件均来自官网下载。 ①.生成 sln 工程文件 打开 cmake ,然后选择 protobuf-v3.19.4 目录中的 cmake 文件夹 单击 configure 按钮,在打开界面

    2024年02月08日
    浏览(41)
  • VS2019编译UE4 4.27.2时出现编译报错

    完整的报错: 1.内部编译器错误。 UE4 D:UE4UnrealEngine-4.27.2-releaseEnginePluginsVirtualProductionRemoteControlSourceRemoteControlPrivateRemoteControlPreset.cpp 1870 2.严重性    代码    说明    项目    文件    行    禁止显示状态 错误    MSB3073    命令“....BuildBatchFilesRebuild.bat

    2024年02月14日
    浏览(46)
  • Colmap编译教程及笔记 [Windows+VS2019+Vcpkg]

    Windows系统下COLMAP的编译可以分为三部分:(1)手动下载安装Boost、Qt、CGAL、CUDA(Boost和CGAL也可以用vcpkg安装);(2)利用vcpkg安装glew、freeimage、ceres等库(3)最后在colmap源代码目录下的build文件夹打开cmd,输入cmake命令生成解决方案 CMake、Git、Visual Studio 2019、Vcpkg等提前安装

    2023年04月08日
    浏览(114)
  • VS2019编译生成动态链接库dll的两种方式

     dll项目的默认结构如下:  四个文件的内容因为是默认生成的,不是特别重要, 接下来就是重要的修改部分: 方法一: 修改“pch.h”和“dllmain.cpp”文件,可以参考以下博主链接,但博主的引用部分有些繁琐,文末会介绍我的引用方法,和正常引用外部库步骤是一样的。这

    2023年04月09日
    浏览(48)
  • Windows环境下C++ 安装OpenSSL库 源码编译及使用(VS2019)

    参考文章 https://blog.csdn.net/xray2/article/details/120497146 之所以多此一举自己写多一篇文章,主要是因为原文内容还是不够详细。而且我安装的时候碰到额外的问题。 一般情况下,引入别人的库,要么把代码直接搞进去,一起编译。要么引入库和头文件(就像MYSQL那样),都不复杂

    2024年02月14日
    浏览(45)
  • 解决MATLAB2020B关于找不到vs2019C++编译器问题

    在配置 matlab 深度学习环境过程中,出现找不到 vs219C++编译器 问题,尝试了各种办法,还是失败,经过摸索和结合他人经验,最终成功,予以总结,供需要的朋友们参考 配置: matlab2020b、vs2019 ,其他版本方法类似 1.matlab中运行mex-setup  出现问题,叫我安装MinGW-w64,但由于后

    2024年02月16日
    浏览(60)
  • 编译opencv环境搭建:vs2019 + cmake-3.25 + opencv-4.5.5

    一 下载vs2019 链接:Downloads - Visual Studio Subscriptions Portal 下载社区版本,因为是免费的,大家随便用 下载成功后直接安装就可以了。 有的环境安装好后在属性管理器中可能没有 Microsoft.Cpp.x64 文件 从如下链接下载 Microsoft.Cpp.x64 文件  (链接转载(227条消息) 解决vs2019属性管理器里

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包