如果想要使用JSBSim提供的动力学运动学模型作为项目的一部分,可参考此教程。本文编辑时间:2022/6
1.开发环境准备-
本文开发环境为Visual Studio 2019,其他版本的应用步骤可能略有不同
-
JSBSim的官方Github仓库为JSBSim-Team/jsbsim: An open source flight dynamics & control software library (github.com),下载master分支压缩包并解压或者使用git工具
git clone https://github.com/JSBSim-Team/jsbsim.git
-
进入jsbsim文件夹,打开JSBsim.sln
-
推荐在Release配置下生成静态库文件,如果你需要在debug配置进行项目开发,流程是一致的,但是部分细节可能会有不同。点击项目->属性,在常规选项栏中,修改配置类型为静态库(.lib),点击应用,确定。
-
点击本地Windows调试器开始生成项目。生成完成后,可能会自动跳出弹窗“无法启动程序JSBSim.lib”,点击确定即可。
-
这时进入jsbsim文件夹下的Release文件夹,即可看到JSBSim.lib文件,复制到你的工程文件夹内即可使用。
我们创建一个空项目(新建空白模板解决方案),来介绍下简单的应用流程,并测试确认上一步生成的静态库文件
-
**将jsbsim文件夹下的aircraft、engine、scripts、systems、src文件夹拷贝至项目文件夹下,并将上一步生成的lib库文件拷贝到项目文件夹下。**src文件夹内为源代码,我们其实只需要其中的所有头文件,可将cpp文件删除,不影响项目(hpp文件不可删除)。其余文件夹为飞机模型等xml文件,如果你已经了解了xml文件的用途及用法,可以只将需要的模型的xml文件放入项目对应文件夹。
-
进入解决方案,这里我们先链接库文件。
-
法1:在项目->属性->链接器->输入->附加依赖项添加如下两项: ws2_32.lib、JSBSim.lib。点击确定、应用、确定。
-
法2,在代码中添加控制宏,参加后面步骤中的代码。
-
-
我们还需要配置包含目录。在项目->属性->VC++目录->包含目录中添加前文复制过来的src文件夹的路径
-
创建一个main.cpp作为主程序,其中代码如下
#include
//包含头文件,该头文件在src文件夹中,已在包含目录中配置。、 #pragma comment(lib,"JSBSim.lib")//控制宏,代表链接该静态库 #pragma comment(lib,"ws2_32.lib")//这个库是网络相关的库,JSB使用了该库,如果不链接会出现error lnk2001 __impxxxx: 无法解析的外部符号错误 //如果在前文使用法1配置了链接器,则此处无需使用控制宏 int main() { JSBSim::FGFDMExec FDMExec;//实例化 FDMExec.SetEnginePath(SGPath(".\engine"));//设置engine文件路径 FDMExec.SetAircraftPath(SGPath(".\aircraft"));//设置aircraft文件路径 FDMExec.SetSystemsPath(SGPath(".\systems"));//设置systems文件路径 FDMExec.LoadScript(SGPath(".\scripts\c1723.xml"));//设置要载入的script文件路径,本文使用经典的c1723作为测试 bool result = true; while (result) result = FDMExec.Run();//运行 return 0; } 上述代码中的路径使用的是相对路径,即按照如上文截图中的文件夹布置。如果你的项目文件夹布置与我不同,请修改路径,勿直接复制代码运行。



