基于win10系统下用vs2019编译flightgear2020.4.0

1.需要准备主要相关文件

1)文件

        源代码(下载页http://www.flightgear.org/download/source-code/

  我使用的版本:FlightGear-2020.4.0.tar.bz2

         SimGear-2020.4.0.tar.bz2

         FlightGear-2020.4.0-data.tar.bz2

        第三方库文件(下载FlightGear Git - FlightGear 维基):

                                1. OpenSceneGraph     2.boost库             3.3rdParty

        还可以直接下载osg的二进制文件:稳定版本 (openscenegraph.com)

        boost库的下载链接:提升C++库 (boost.org)

        一般下载最新版本

        还可以用git直接拉取到本地仓库,克隆链接如下   

                git clone https://git.code.sf.net/p/flightgear/simgear simgear

                git clone https://git.code.sf.net/p/flightgear/flightgear flightgear

                git clone https://git.code.sf.net/p/flightgear/fgdata fgdata

                git 克隆 https://git.code.sf.net/p/flightgear/windows-3rd-party Windows-3rd-party

                git clone -b fgfs-osg-36-1 GitHub - zakalawe/osg: OpenSceneGraph git mirror osg 

所需软件

  • CMake for Windows.下载并安装 Windows Win64-x64 安装程序(建议选择系统默认的安装路径),安装好后记得加到系统环境变量中
  • Microsoft Visual Studio 2019 (MSVC).社区版本是免费的。不需要高级版本;他们的任何功能都不是构建FlightGear所必需的。默认情况下,将不安装C++编译器。您可以在安装过程中或安装后通过启动 MSVC 并尝试创建新的C++项目来选择此组件。要下载的是“具有C++的桌面开发”。确保选中 Windows SDK 和C++编译器的最新版本。截至 2020 年 8 月 10 日,最新版本的编译器是“MSVC 142 - VS 2019 C++ x64/86 构建工具 (v14.27)”。
  • Qt5 用于集成 Qt5 启动器。下载在线安装程序,并选择与您的Visual Studio工具链匹配的版本,例如“Qt 5.15.1 --> MSVC 2019 64位”。任何超过5.9的版本都可以;5.15 推荐。保留默认的“开发人员和设计器工具”选项 - 编码和编译需要这些选项(安装时一定要将MSVC2019-64勾选上)。
  • Git 使您的构建保持最新状态。它还简化了组件的下载。可选,但不能推荐它!

我使用的工具:

        qt5.15.2      vs2019     CMake3.2.4.0     git2.3.6

2.创建目录 以及编写脚本参照如下网页   

使用CMake进行构建 - Windows - FlightGear维基

  如下是我的目录(此文件夹得全部文件使用git克隆下来得,可以随时拉取最新的版本),仅供参考       

fgdata,simgear,osg放的是源码,flightgear-bulid,simgear-build,osg-build里存放的是编译过后各自的二进制文件,windows-3rd-party是第三方库,里面包括boost,3rdparty等等,install文件夹下的openscenengraph存放的是osg的编译过后的二进制文件,lib,include则是simgear编译链接成功后生成的用来编译flighgear提供动态链接库,bin是flightgear编译成功时生成的,里面有可执行文件

编译时直接启动脚本就行,这里重点说下编译时所遇到的问题以及解决办法

这个编译时间可能比较长,需要编译osg源码,以及simgear和flightear源码,不出问题的情况下可能需要半个小时左右,请耐心等待

1.如果脚本中的qt的编译器为msvc2015-64,VS为14 2015,编译simgear则可能会出现以下错误,导致其不能生成编译flightgear所需要的动态库

 如果出现上述错误,请将编译脚本中的vs改为2019,qt的编译改为msvc2019-64

我拿vs2015,qt5.9.6,msvc2015-64编译flightgear2020.3失败,我猜测最新版本里的有些C++语法低版本的编译器不支持,所有报错

 2.出现下面此类错误编译flightgear需要依赖simgear所生成的动态库,因为simgear编译通过,但是生成动态库的时候出错,所以需要重新编译simgear,并让其生成动态库 

3.如果出现找不到find_package(osg)

-- Could NOT find osgDB (missing:  OSGDB_LIBRARY OSGDB_INCLUDE_DIR) 
-- Could NOT find osgGA (missing:  OSGGA_LIBRARY OSGGA_INCLUDE_DIR) 
-- Could NOT find osgUtil (missing:  OSGUTIL_LIBRARY OSGUTIL_INCLUDE_DIR) 
-- Could NOT find osgViewer (missing:  OSGVIEWER_LIBRARY OSGVIEWER_INCLUDE_DIR) 
-- Could NOT find osgText (missing:  OSGTEXT_LIBRARY OSGTEXT_INCLUDE_DIR) 
-- Could NOT find osg (missing:  OSG_LIBRARY OSG_INCLUDE_DIR) 
-- Could NOT find OpenThreads (missing:  OPENTHREADS_LIBRARY 
  CMakeLists.txt:6 (FIND_PACKAGE)

由于FindOpenSceneGraph不是使用系统指定默认安装目录,而是自己手动使用CMAKE_INSTALL_PREFIX指定安装的目录因此找不到,将cmake安装到系统默认路径下即可

4.编译成功install目录下则会出现以下文件夹,include和lib是simgear编译链接成功生成的,bin是flightgear编译成功生成的,里面有fgfs.exe可执行文件,openscenegraph是编译osg源码所生成的

 5.如果运行fgfs.exe文件是报错缺少openAL32.dll,event_core.dll,dbus-1-3.dll,Qt5Charts.dll,以及其他的osg和qt5的动态库链接库时,只需要在第三方库中找到所对应的文件复制到fgfs所在的文件夹下即可,嫌麻烦的话则把下面所有的.dll文件全部复制过去(以下是我的安装目录,仅供参考)

 缺少qt5动态连接时,在qt安装目录下找到所对应的文件复制到fgfs所在的文件夹下即可,嫌麻烦的话则把下面所有的.dll文件全部复制过去(以下是我的安装目录,仅供参考)

 全部加好就可以运行了

附飞行说明:(66条消息) Flightgear操作方式以及几种典型飞机的起飞方法_Mosquito_蚊子的博客-CSDN博客_flightgear怎么起飞

想看源代码的话可以用vs2019打开flightgear-build文件中的.sln文件即可,可以进行编译,修改等一系列操作

最后附一份我编译好的文件,里面包括源码以及可运行程序,亲测可以运行,里面还包含flightgear2020.3.exe安装包,qt5.15在线安装包,vs2019专业版安装包,CMake安装包,下载链接如下:

链接:https://pan.baidu.com/s/1ADan8E06-0mt1GCHijxoBA 
提取码:mayr 
--来自百度网盘超级会员V1的分享

目录

1.需要准备主要相关文件

所需软件

我使用的工具:

2.创建目录 以及编写脚本参照如下网页   

编译时直接启动脚本就行,这里重点说下编译时所遇到的问题以及解决办法


  • 28
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值