Flightgear 编译

一、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

时间: 2024-11-08 23:22:33

Flightgear 编译的相关文章

C++工程编译之“error LNK2001: 无法解析的外部符号”

今天一整天都在折腾“error LNK2001: 无法解析的外部符号”,就在头疼不已的时候,总算是找到问题原因了:各个动态链接库的编译方式必须统一才行,要不然很容易对库函数的引用产生冲突.简单来说就是,如果使用的第三方函数库编译方式采用/MD,那么主工程也应该使用/MD.我使用了libevent,而主工程默认采用/MT,所以需要忽略一大堆的函数库,我还纳闷呢,怎么会这么奇怪!!今天总算是解决了长久以来的困惑了. 下面引用一篇文章的描述:[Z]VC运行库版本不同导致链接.LIB静态库时发生重复定义

基于源码编译openssl

openssh依赖于openssl,由于ssl频繁曝出漏洞,牵扯到openssh.而自身也存在漏洞... 00.下载openssl https://www.openssl.org/source/ https://github.com/openssl/openssl/releases https://www.openssl.org/source/openssl-1.0.2l.tar.gz 01.准备工作 yum -y install perl perl-devel gcc gcc-c++ 02.编

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

Windows下VC编译OpenDDS

OpenDDS是一个OMG组织DDS标准的C++开源实现,OpenDDS同时也提供Java支持.OpenDDS依赖ACE抽象层来提供不同平台的兼容性,同时也依赖于TAO(例如TAO的IDL编译器).当前OpenDDS有ociweb ObjectComputing维护,官方网站http://www.opendds.org/.目前OpenDDS支持的平台有Windows,Linux family,Android,VxWorks等,可用的编译器包括VC,gcc,QNX gcc等. 1. OpenDDS

ffmpeg 3.2.4 + libx264 windows 编译总结

___________________________编译环境__________________________________ NDK 环境:android-ndk-r13b MinGW环境:Basic Setup下Mark了所有的项目,FFmpeg需要使用msys环境进行编译 ffmpeg :3.2.4 下载地址 libx264:官网最新 _____________________________________________________________________ ______

Hadoop:Windows 7 32 Bit 编译与运行

所需工具 1.Windows 7 32 Bit OS(你懂的) 2.Apache Hadoop 2.2.0-bin(hadoop-2.2.0.tar.gz) 3.Apache Hadoop 2.2.0-src(hadoop-2.2.0-src.tar.gz) 3.JDK 1.7 4.Maven 3.2.1(apache-maven-3.2.1-bin.zip) 5.Protocol Buffers 2.5.0 6.Unix command-line tool Cygwin(Setup-x86.e

Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)

注解的处理除了可以在运行时通过反射机制处理外,还可以在编译期进行处理.在编译期处理注解时,会处理到不再产生新的源文件为止,之后再对所有源文件进行编译. Java5中提供了apt工具来进行编译期的注解处理.apt是命令行工具,与之配套的是一套描述"程序在编译时刻的静态结构"的API:Mirror API(com.sun.mirror.*).通过Mirror API可以获取到被注解的Java类型元素的信息,从而提供自定义的处理逻辑.具体的处理工具交给apt来处理.编写注解处理器的核心是两个

Ubuntu 16.04编译Android 7.1.2

折腾了很久,终于搞定了这个环境.记录一下. 准备工作: 1. 首先在Ubuntu官网上下载Ubuntu16.04的官方镜像.官网下载地址(这个找了很久,这里可以直接下载ISO镜像):https://launchpad.net/ubuntu/+cdmirrors 2. 建议直接安装到自己硬盘上(推荐双系统),不要在虚拟机上搞,除非你有足够大的SSD.我之前在虚拟机上试过,电脑的性能完全发挥不出来,后来搞了双系统,发现一切都是那么舒服. 3. Android源码下载方法:https://lug.us

Firefly-RK3288开发板Android编译环境搭建开荒

入手了Firefly-RK3288的开发板,自己从零开始搭建编译环境开荒 第一步:安装Ubuntu12.04,使用安装盘安装(安装的过程就不详写了,下面贴图) 安装完后,更新ubuntu 第二步:从官网上下载SDK,进行编译环境的安装 下载SDK有两种方式,一是下载压缩包,二是通过git下载. 我选择了下载压缩包.SDK百度云下载地址:http://pan.baidu.com/s/1eQjBGQI?qq-pf-to=pcqq.c2c 在等待代码下载完成的同时,开始按照官方的步骤进行环境安装.为了