一、FlightGear简介

FlightGear 始于1997年,是一个开源的多平台飞行模拟器。

二、FlightGear编译过程

FlightGear平台的说明文档见:http://wiki.flightgear.org/Main_Page

FlightGear支持在多平台上运行,用户可以从源码开始编译自己的FlightGear,编译方法也有很多种。

这里我们主要在Windows平台上运行,因此这里选用Building using CMake - Windows方式进行编译。,官方流程见:http://wiki.flightgear.org/Building_using_CMake_-_Windows

1、首先需要准备主要相关文件

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

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

         SimGear-2016.1.1.tar.bz2

         FlightGear-2016.1.1-data.tar.bz2

  2)工具软件

If you get an error during the installation of the SDK, try uninstalling MSVC redist packages first, then installing the SDK without compilers and then finally re-installing MSVC.
  • Visual Studio 2010 SP1 (If you get a linking error during the configure process)
  • Qt5 for the Integrated Qt5 Launcher (optional as of 03/2015)——QT5至少5.1以上,我当时用的5.1 有个OENLY_xx参数不支持,后来用了5.5,所以可以确定的是5.5版本是可以的(http://download.qt.io/archive/qt/5.5/5.5.0/   qt-opensource-windows-x86-msvc2010-5.5.0.exe  )
  • 另外还需要安装OpenGL环境,记得下载一个编译好的OpenGL,把include 文件放到 Visualstudio 2010 的C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include目录,dll放到C:\Windows\System32 中。

2、创建目录

 32系统版本需创建目录如下(相比于官网,加上虚线更容易看清目录结构)

3、编译过程

  1)编译simgear

  

已经是第二次打开了,所以没有第一次打开Cmake 点击config,选择编译器: Visual Studio 10(我的是第二次打开,所以再点config看不到那个界面了,下面盗了个图,此图来自自由云https://www.freeyun.com/flightgear-3-2-0-generation-debug.html)

然后,主界面:

CMAKE_BUILD_Type 根据需要添加,我后来加的是”Debug;Release“,两个版本都要。

Where is the source code 设置为 D:\MSVC_3RDPARTY_ROOT\simgear-2016.1.1

Where to build the binaries 设置为D:\MSVC_3RDPARTY_ROOT\simgear-build
CMAKE_INSTALL_PREFIX 设置为 D:\MSVC_3RDPARTY_ROOT\Install\msvc100\SimGear

点击 Configure 直至 Generate 可用,点击 Generate 生成工程文件

这个过程中,如果Cmake中有提示xxx-notfound,记得手动配置一下,如果错误产生看是什么错误,一般情况下是没有找到相应的依赖库,如果没有下载,就自己去下,如果已经下载,但是没找到就手动帮忙重置一下,简单粗暴。一定记得查看错误原因,要有耐心慢慢捋。最后,编译成功,打开位于 D:\MSVC_3RDPARTY_ROOT\simgear-build 的工程文件 SimGear.sln 。

选择批生成,勾选ALL_BUILD和INSTALL 两项(这里我在Cmake那页里后来加上了Debug;Release ,所以有两个版本)

点击生成,等待编译成功。

  2)编译FlightGear

同样的,编译FlightGear和Simgear的流程差不多,只是把对应的目录换成FlightGear的相关目录,这其中涉及到的内容就比较多。

Where is the source code 设置为 D:\MSVC_3RDPARTY_ROOT\flightgear-2016.1.1
Where to build the binaries 设置为 D:\MSVC_3RDPARTY_ROOT\flightgear-build
CMAKE_INSTALL_PREFIX 设置为 D:\MSVC_3RDPARTY_ROOT\Install\msvc100\FlightGear

点击 Configure 直至 Generate 可用,点击 Generate 生成工程文件
用 VS 打开 D:\MSVC_3RDPARTY_ROOT\flightgear-build下的工程文件 FlightGear.sln

以上是基本流程,其中可能遇到的问题有BZIP2_INCLUDE_DIR等BZIP2的目录找不到,自己可以到 官网上下载一个,然后放到3rdParty 中 D:\MSVC_3RDPARTY_ROOT\3rdParty\bzip2-1.0.6 。

还有就是Qt5 ,建议5.5以上,相关目录如下

C:/Qt/Qt5.5.1/5.5/msvc2010/lib/cmake/Qt5Core

C:/Qt/Qt5.5.1/5.5/msvc2010/lib/cmake/Qt5Gui

C:/Qt/Qt5.5.1/5.5/msvc2010/lib/cmake/Qt5Widgets

C:/Qt/Qt5.5.1/5.5/msvc2010/lib/cmake/Qt5

其中,目录设置出错的话,会有详细提示,照着做就好了。

上传一下完整的配置。

之后,同样是Generate,然后打开flightgear.sln文件,对ALL_BUILD项目,选择批量编译。

然后配置环境变量

Path中添加 D:\MSVC_3RDPARTY_ROOT\Install\msvc100\OpenSceneGraph\bin; D:\MSVC_3RDPARTY_ROOT\3rdParty\bin。

设置新的系统变量 FG_HOME
变量值为 D:\MSVC_3RDPARTY_ROOT\Install\msvc100\FlightGear

继续打开 FlightGear.sln 工程,将 fgfs 设置为启动项

打开 fgfs 的工程属性,配置属性-调试-命令参数,添加--fg-root=D:\MSVC_3RDPARTY_ROOT\FlightGear-2016.1.1-data

然后启动调试即可

参考

http://www.flightgear.org.cn/thread-7997-1-1.html

https://www.freeyun.com/flightgear-3-2-0-generation-debug.html

http://www.flightgear.org.cn/thread-7997-1-1.html

https://www.freeyun.com/flightgear-3-2-0-generation-debug.html

Flightgear 编译的更多相关文章

  1. [原]编译flightGear

    参考:flightgear编译博客201705 flightGear是三维飞行仿真软件,这个款软件是开源的,我们尝试用其源码完整编译一遍这个工程,并使用它. 它用到里以下扩展库: 空气动力学库:JSB ...

  2. FlightGear 从输出所省略的额外重寻址溢出

    2020-12-27 在龙芯Fedora28上编译 FlightGear 2019.1.1 时遇到 从输出所省略的额外重寻址溢出 错误,错误信息如下: [ 98%] Linking CXX execu ...

  3. TODO:macOS编译PHP7.1

    TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...

  4. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  5. CENTOS 6.5 平台离线编译安装 PHP5.6.6

    一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...

  6. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  7. Android注解使用之注解编译android-apt如何切换到annotationProcessor

    前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...

  8. Hawk 6. 编译和扩展开发

    Hawk是开源项目,因此任何人都可以为其贡献代码.作者也非常欢迎使用者能够扩展出更有用的插件. 编译 编译需要Visual Stuido,版本建议使用2015, 2010及以上没有经过测试,但应该可以 ...

  9. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测

    目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/lin ...

随机推荐

  1. WordPress Event Easy Calendar插件多个跨站请求伪造漏洞

    漏洞名称: WordPress Event Easy Calendar插件多个跨站请求伪造漏洞 CNNVD编号: CNNVD-201309-083 发布时间: 2013-09-11 更新时间: 201 ...

  2. DIP开放计算平台介绍

    随着平台业务的发展,依赖于Portal(Web)构建的服务架构已逐渐不能满足现有的一些复杂需求(如:使用Hive SQL无法完成计算逻辑),而且对于一些具备编程能力的程序员或数据分析师而言,能够自主控 ...

  3. rspec学习01

    1.安装rspec 2.基本构造 rspec用关键字describe和it,所以我们可以象正常会话一样去表达一个想法. describe方法创建了一个用例组,在describe所在的代码块里,你可以用 ...

  4. GPG error: the public key is not available

    GPG error: The following signatures couldn't be verified because the public key is not available I h ...

  5. 前谷歌首席 Java 架构师谈如何设优秀的 API

    随着近来软件规模的日益庞大,API编程接口的设计变的越来越重要.良好的接口设计可以降低系统各部分之间的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合度,从而提高系统的维护性和稳定性. Joshu ...

  6. poj 1847 Tram【spfa最短路】

    Tram Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12005   Accepted: 4365 Description ...

  7. 细谈Java

    重载:相同函数名,不同参数. 重写(覆写):父类和子类之间的,子类重写了父类的方法. java的多态:重载+覆写 1.      Main方法: 是public的,也是static,也是void的,参 ...

  8. PDO 提供了三种不同的错误处理模式

    PDO::ERRMODE_SILENT 此为默认模式. PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象.如果错 ...

  9. JSON 和 JSONP

    本文转载:http://www.cnblogs.com/shanyou/archive/2009/12/13/1623163.html JSON 和 JSONP  浏览器安全模型规定,XMLHttpR ...

  10. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为s ...