FlightGear飞行模拟器

标题: 请教flightgear3.4.0在windows平台下如何编译? [打印本页]

作者: wulanbagen    时间: 2014-8-7 20:37
QQ_881277 发表于 2015-8-7 16:43
高手,请问你的平台环境是什么?winndow7还是windows8,vs的版本呢?我换windows7平台了,正在安装环境, ...

我使用win7(64位)+VS2013 ,能够正常编译
作者: QQ_881277    时间: 2015-7-30 10:29
标题: 请教flightgear3.4.0在windows平台下如何编译?
请教flightgear3.4.0在windows平台下如何编译?需要哪些工具和库?多谢。
作者: wulanbagen    时间: 2015-7-30 20:32
安装Git,CMake
获取最新的源代码,下载OSG,plib。
编译OSG-》SimGear-》FlightGear
作者: QQ_881277    时间: 2015-7-31 15:33
谢谢楼上,能否说得再详细一些或者给个链接,我的环境是windows8.1,visual studio 2013 utimate,flightgear3.4.0,simgear3.4.0,请指教。
作者: wulanbagen    时间: 2015-7-31 20:06
本帖最后由 wulanbagen 于 2015-7-31 23:29 编辑

我自己的操作步骤如下:
1.假设你已经安装了CMake(最好3.0.0以上)、Git;
2.通过Git下载最新的源代码,最新的源代码版本是3.6.0;Git可以下载SimGear、FlightGear、windows-3rd-party最新版本,下载地址在flightgear的wiki文档中有。另外需要下载OSG(3.2.1)、plib-1.8.5
3.首先编译OSG。使用CMake生成VS2013的解决方案,选择好你使用的编译器版本,然后编译。
4.接着使用CMake生成SimGear、FG的解决方案,编译。

注意64位与32位的区别,统一使用32位或统一使用64位即可。

我最近刚刚自己编译过,还没有详细记录,也没制作说明图,抱歉。
作者: QQ_881277    时间: 2015-8-4 08:30
wulanbagen 发表于 2015-7-31 20:06
我自己的操作步骤如下:
1.假设你已经安装了CMake(最好3.0.0以上)、Git;
2.通过Git下载最新的源代码, ...

非常感谢,还是有问题要问你:我用CMAKE编译OSG的时候有很多错误,不过可以GENERATE,用VS2013生成时有很多错误。另外用CMAKE编译SIMGEAR怎么也不对。请问是路径设置的不对吗?还请指教。
作者: wulanbagen    时间: 2015-8-4 09:18
CMake产生OSG解决方案时,你第三方依赖库路径是否设定正确?见我的目录。如果你设置正确,OSG不会有很多错误,只有一两条冲突的警告,不影响编译,使用VS2013编译不会出错。

CMake生成simgear工程时有什么错误?贴出来看看
用CMake生成FlightGear时,你需要指定simgear所在路径的环境变量SIMGEAR_DIR,添加该环境变量后需要重新启动才生效。
作者: lvguohu    时间: 2015-8-4 09:33
我也是遇到问题了 simgear 编译一直出错
作者: wulanbagen    时间: 2015-8-4 14:51
lvguohu 发表于 2015-8-4 09:33
我也是遇到问题了 simgear 编译一直出错

什么错误?截个图贴出来看看
作者: QQ_881277    时间: 2015-8-4 15:05
wulanbagen 发表于 2015-8-4 14:51
什么错误?截个图贴出来看看

这是出现错误画面的截图。都是“could not find...”之类的错误,请问是缺少什么库文件还是路径设置的不对呢?请指教,感谢。

无标题.png (146.29 KB, 下载次数: 495)

无标题.png

作者: wulanbagen    时间: 2015-8-4 20:28
QQ_881277 发表于 2015-8-4 15:05
这是出现错误画面的截图。都是“could not find...”之类的错误,请问是缺少什么库文件还是路径设置的不对 ...

那些could not find错误不用全部理会,主要针对红色字体提示的。
在CMake产生Simgear时,需要指定Zlib、OSG等库的路径,如果有什么could not find,你只要确定这个不能找到的库既不是OSG的库又不在3rdParty的文件夹中,就不要管他。
作者: QQ_881277    时间: 2015-8-5 17:14
wulanbagen 发表于 2015-8-4 20:28
那些could not find错误不用全部理会,主要针对红色字体提示的。
在CMake产生Simgear时,需要指定Zlib、 ...

谢谢你。请问我在用VS2013编译OSG3.2.0的时候提示很多错误,大多是无法找到osgFXD.lib之类的错误。我个人认为这些lib文件应该是编译后生成的才对,为什么在自身编译的时候也需要这些文件呢?请指教。
作者: wulanbagen    时间: 2015-8-5 22:21
本帖最后由 wulanbagen 于 2015-8-5 22:22 编辑
QQ_881277 发表于 2015-8-5 17:14
谢谢你。请问我在用VS2013编译OSG3.2.0的时候提示很多错误,大多是无法找到osgFXD.lib之类的错误。我个人 ...


osgFXd.lib?
也就是说你使用的是debug编译模式。
出现此错误是说明你在编译时osgFX库没有正常生成。你应该在出现的错误中找到那些非“无法找到osgFXd.lib”的错误,进行针对性的修改。
我记得好像编译的时候修改了osg的引用有文件,在几处添加了引用:#include <algorithm>。
作者: QQ_881277    时间: 2015-8-6 14:43
wulanbagen 发表于 2015-8-5 22:21
osgFXd.lib?
也就是说你使用的是debug编译模式。
出现此错误是说明你在编译时osgFX库没有正常生成。你 ...

谢谢你。被OSG编译折磨的要疯了。高手,再请教你,我在windows8.1平台下,IDE为 vs2013 utimate,OSG版本为3.2.0,CMAKE版本为3.3.0。用CMAKE生成工程时没有错误,但有一条warning,提示cmake目录下的FindPNG.cmake includes OSG目录下的FindZLIB.cmake,this may cause errors later on。错误没管它,用vs2013 utimate编译时出现了很多错误,大部分都是LINK:fatal error LNK1104:无法打开文件“..\..\lib\\osgViewerd.lib”还有osgAnimation.lib等等,真的不知道该如何解决了,请麻烦指教。
作者: wulanbagen    时间: 2015-8-6 16:35
QQ_881277 发表于 2015-8-6 14:43
谢谢你。被OSG编译折磨的要疯了。高手,再请教你,我在windows8.1平台下,IDE为 vs2013 utimate,OSG版本 ...

你把出现的错误贴出来看看,我没遇到这种错误。
编译过程中由于VS2013对C++标准执行的问题,我的确更改了几处头文件。
其他的错误一时想不起来。你贴一下,帮我回忆回忆
作者: QQ_881277    时间: 2015-8-6 17:09
wulanbagen 发表于 2015-8-6 16:35
你把出现的错误贴出来看看,我没遇到这种错误。
编译过程中由于VS2013对C++标准执行的问题,我的确更改了 ...

高手,我下了一个osg3.2.0的二进制安装包,现在正在编译SimGear3.4.0,出现了两处错误,能否帮我看下:
1."_isnan"不是"global namespace"的成员,不能用在using声明中。
这个错误定位在cmath中,是在VS2013的安装目录下,不能修改。
2.无法打开输入文件"..\Debug\SimGearCored.lib"
这两个问题麻烦指导一下解决方式,多谢。

作者: wulanbagen    时间: 2015-8-6 21:12
本帖最后由 wulanbagen 于 2015-8-6 21:18 编辑
QQ_881277 发表于 2015-8-6 17:09
高手,我下了一个osg3.2.0的二进制安装包,现在正在编译SimGear3.4.0,出现了两处错误,能否帮我看下:
...


出现此错误应该是你在CMake产生Simgear解决方案的时候,错误的引用了config导致的。生成的simgear_config.h文件中包含了跨平台编译的几处设置,我的simgear_config.h文件内容如下:
/* #undef HAVE_SYS_TIME_H */
#define HAVE_SYS_TIMEB_H
/* #undef HAVE_UNISTD_H */


/* #undef HAVE_GETTIMEOFDAY */
#define HAVE_GETLOCALTIME
#define HAVE_FTIME
#define HAVE_RINT
/* #undef HAVE_TIMEGM */
#define HAVE_ISNAN
#define HAVE_STD_ISNAN
#define HAVE_WINDOWS_H
/* #undef HAVE_MKDTEMP */

/* #undef GCC_ATOMIC_BUILTINS_FOUND */

/* #undef SYSTEM_EXPAT */
#define ENABLE_SOUND

你对比一下,看看是不是不一样。
如果不一样,你可以试试用上述内容进行替换,要是还不行你就得把3rdParty/include/下的config文件先转移走然后重新生成simgear解决方案。
作者: QQ_881277    时间: 2015-8-7 16:43
wulanbagen 发表于 2015-8-6 21:12
出现此错误应该是你在CMake产生Simgear解决方案的时候,错误的引用了config导致的。生成的simgear_conf ...

高手,请问你的平台环境是什么?winndow7还是windows8,vs的版本呢?我换windows7平台了,正在安装环境,还不知道能否编译成功。在window8.1平台下还是编译不过去,错误总是那几个。等有问题还得请教你。
作者: QQ_881277    时间: 2015-8-22 08:43
wulanbagen 发表于 2014-8-7 20:37
我使用win7(64位)+VS2013 ,能够正常编译

高手,请帮我看看这个错误是怎么回事?OSG和SIMGEAR都已经编译生成好,现在在生成FLIGHTGEAR阶段。错误提示找不到sim gear libraries。但是我已经生成SIMGEAR的INCLUDE和LIB了呀。你看看图片,可以帮我分析一下吗?

image.jpg (982.51 KB, 下载次数: 359)

image.jpg

image.jpg (304.65 KB, 下载次数: 331)

image.jpg

作者: wulanbagen    时间: 2015-8-22 09:39
QQ_881277 发表于 2015-8-22 08:43
高手,请帮我看看这个错误是怎么回事?OSG和SIMGEAR都已经编译生成好,现在在生成FLIGHTGEAR阶段。错误提 ...


添加SIMGEAR_DIR环境变量,在“计算机”上右键选择“属性”,再选择“高级系统设置”,再弹出的对话框中,选择环境变量,在系统变量中增加SIMGEAR_DIR,指向simgear库所在的位置即可。环境变量设置完后需要重启才能生效。

作者: wulanbagen    时间: 2015-8-22 09:40
本帖最后由 wulanbagen 于 2015-8-22 09:41 编辑

上个图片吧,就是这样设置的,你打开大图一看就明白了

fg.png (127.09 KB, 下载次数: 415)

simgear环境变量设置

simgear环境变量设置

作者: 空天之翼    时间: 2015-10-8 13:14
官方下载下来的程序没法直接运行吗?
作者: jinzhu1911    时间: 2016-3-6 13:27
"osgvisual.org/public_download/3rdParty_VS2013_v120_x86_x64_V9_full.7z"
官网提供的VS2013编译需要的第三方库下载地址失效了,麻烦您还能发一份您编译的给我用,谢谢!
@wulanbagen
作者: RSKY    时间: 2016-4-1 11:29
cmake编译simgear的时候提示找不见boost库和header是什么原因呀?大神知道么,指点一下吧

CMake Error at D:/cmake-3.5.1-win32-x86/share/cmake-3.5/Modules/FindBoost.cmake:1657 (message):
  Unable to find the requested Boost libraries.

  Unable to find the Boost header files.  Please set BOOST_ROOT to the root
  directory containing Boost or BOOST_INCLUDEDIR to the directory containing
  Boost's headers.
Call Stack (most recent call first):
  CMakeLists.txt:193 (find_package)


作者: QQ_881277    时间: 2016-6-1 10:00
RSKY 发表于 2016-4-1 11:29
cmake编译simgear的时候提示找不见boost库和header是什么原因呀?大神知道么,指点一下吧

CMake Error a ...

得将提示对应的BOOST库下载到本地,在CMake中定位。
作者: 沐筱柠    时间: 2016-6-13 16:52
C:\Users\xiaovv.N2BWYKRRVSJUTRU\Desktop\1.png
我现在是在编译simgear 阶段,提示这里错误了,请问下该怎么解决呀,谢谢啦

1.png (86.65 KB, 下载次数: 410)

1.png

作者: VeyronC    时间: 2016-9-22 15:56
wulanbagen 发表于 2015-7-31 20:06
我自己的操作步骤如下:
1.假设你已经安装了CMake(最好3.0.0以上)、Git;
2.通过Git下载最新的源代码, ...

高手,请教一下,现在直接安装官网的FlightGear.exe能打开程序。我们需要在FG的源码基础上,自己做改进,但是网上找的资料版本好杂乱。看到你回答别人的问题,很清晰明了,能加个联系方式吗?有问题请教你一下。我QQ465080294.
作者: y大橙子丶    时间: 2018-8-21 19:41
感谢楼主,正在学习flightgear!




欢迎光临 FlightGear飞行模拟器 (https://flightgear.org.cn/) Powered by Discuz! X3.2