1 目录准备
window 10 系统
VS 下载 Visual Studio 企业版也是可以的 官方要求最低 Express 版本。(我安装的是 VS企业版本,关于C++WINDOW SDK都全部装上了)
其他下载按照1.1给的脸颊下载。
1.1 按照官方建议目录来
目前基本都是64bit系统,其中需要下载的
3rdParty.x64 /
OpenSceneGraph / ( OSG CMake install )
Boost / (latest version can be downloaded from /) 下载最新版本
64-bits 目录结构
3rdParty.x64 /
bin /
include /
lib /
Boost / (latest version can be downloaded from [/](/ "/"))
boost /
lib64 /
install /
msvc140-64 / ( for VS 64-bits, or msvc100-64 for VS 64-bits, or msvc90-64 for VS 64-bits )
OpenSceneGraph / ( OSG CMake install )
bin /
include /
lib /
SimGear / (create this empty for now, subfolders will be created by build process 只是空目录后面会自动生成文件过来)
include /
lib /
FlightGear / (create this empty for now 只是空目录后面会自动生成文件过来)
include /
lib /
1.2 实际目录如下图
${MSVC_3RDPARTY_ROOT} 表示根目录,比如我的叫 FLIGHTGEAR_ROOT_X64 放在了D盘根目录。
1.3 下载 flightgear源码
下载源码,包括3个部分
simgear
flightgear
flight-data
我下的是.1.1 提交的版本,应该是目前最新的release版本代码。在哪里下?
官方入口: /FlightGear_Git 进入找到最新的release版本,这里不建议编译老版本,老版本意味着失去了最新的支持。
1.4 拷贝到1.1构件的目录
把源码拷贝过来,如下图,并增加文件夹 flightgear-.1.1-build、simgear-.1.1-build 空文件夹,作为源码编译后生成代码存放的文件夹。
如下图,
flightgear-.1.1 下载的源码
flightgear-.1.1-build 空文件夹,用于cmake ui 生成 visual studio 工程文件。
simgear-.1.1-build 下载的源码
simgear-.1.1-build 空文件夹,用于cmake ui 生成 visual studio 工程文件。
2. CMake 编译
2.1 设置编译源码目录
首先你要下载CMake,打开CMake 如下图,设置 simgear的源码和编译后的文件存放目录
2.2 点击【Configure】
弹出框设置,点击【 Finish】
注意,一定要安装 Visual Studio 高版本的不支持、一定要安装 Visual Studio 高版本的不支持、一定要安装 Visual Studio 高版本的不支持。官方提到vs-的版本都是支持的。
2.3 错误处理一般是 boost目录没有设置
设置 Boost目录
继续点击 【Configure】
2.4 错误处理设置工程输出目录 CMAKE_INSTALL_PREFIX
CMAKE_INSTALL_PREFIX 是 VS工程输出目录。
如果还有错误,一般就是NOT FIND 错误,记住,C++的错误大多数是某某路径设置不正确。如下图本次设置
继续点击 【Configure】
2.5 生成 Generate
如果编译结果遇到 Warning 不要理会,还是点击 Generate 按钮进行VS工程代码生成。
如果成功,那么显示
可以 Open Project 对 Simgear 源码编译。
3 编译 Simgear 源码
注意必须先编译 Simgear 源码,之后才能进行 FlightGear 源码的生成与编译
3.1 编译 解决方案
打开VS可见
有61个工程。等等VS加载项目完毕
选 Release 便右键工程解决方案,点击【生成解决方案】,要一定时间根据个人电脑配置。
如上图,如果出现了类似的提示,恭喜你编译成功
3.2 编译Install 工程项目,生成到指定目录
这里生成的目录就是 CMAKE_INSTALL_PREFIX 设置的目录
出现错误了
这个错误不知道如何解决,直接去掉这个文件,看上去缺少 header文件,因为是test项目,直接从 工程中去掉。
生成成功 查看我们的目录
4.CMake 编译FlightGear源码
cmake编译 flightgear 源码工作是跟 gear一样的,中间多出一个 simgear目录设置。
4.1 设置FlightGear路径,并点击 Configure
弹出设置框设置
你应该注意到 这个步骤跟Simgear是一样的
4.2 设置 Boost目录
你的CMake一定会报错,如下:
因为我们参数 BOOST_INCLUDE_DIR 没有正确设置,
这个步骤我们一次设置两个参数
BOOST_INCLUDE_DIR
CMAKE_INSTALL_PRFIX
你应该注意到 这个步骤跟Simgear是一样的
4.3 设置错误SimGear_DIR 设置
这里的 SimGear_DIR 就是跟前面生成的不同之处。
如下 Could not find a package configuration file provided by "SimGear"
(requested version .1.0) with any of the following names:Could not find a package configuration file provided by "SimGear"
(requested version .1.0) with any of the following names:
这个问题我折腾半天,其实没有细看错误提示。提示说的很清楚,缺少SimGearConfig.cmake 我们应该在我们设置的目录中查询就知道了
设置 SIMGEAR_DIR
点击 Configure
4.4 生成
你可能看到还有不少报错,但是都是 Warning,你可以忽略
5 编译 Flightgear
好了以上关于Flightgear的步骤其实跟 Simgear是一样的,使用VS编译也是一样的,如下设置
选择 Release 模式 x64 点击【生成解决方案】
编译成功后选择 INSTALL工程,右键点击【生成】
安装到指定目录
6 拷贝配置Flightgear-DATA 数据
把 fliight-data 拷贝到 D:FLIGHTGEAR_ROOT_X64installmsvc140-64FlightGear 并命名位 data
7 调试 ctrl+F5
在工程项目属性中
需要在 fgfs项目属性中 调试参数
--fg-root=D:FLIGHTGEAR_ROOT_X64installmsvc140-64FlightGeardata
注意:如果调试遇到一些DLL缺少问题请看下面的解决方案。比如 osg131开通的dll
问题
最后 是一些 dll文件的问题需要把dll文件拷贝到执行目录 D:FLIGHTGEAR_ROOT_X64installmsvc140-64FlightGearin 我也不知道为什么,还不知道C++中如何处理这些。
拷贝 D:FLIGHTGEAR_ROOT_X643rdParty.x64in 所有DLL文件
拷贝 D:FLIGHTGEAR_ROOT_X64installmsvc140-64OpenSceneGraphin 所有DLL文件
拷贝 D:FLIGHTGEAR_ROOT_X64installmsvc140-64OpenSceneGraphinosgPlugins-3.4.2 整个文件夹到
以上文件拷贝到 D:FLIGHTGEAR_ROOT_X64installmsvc140-64FlightGearin 目录
如何在vs编译c语言程序 如何在使用WIN10 Visual Studio 编译FlightGear源码(.1.1版本)(示例代码)...