Ubuntu16.04编译Warzone2100

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

        不说别的了,直奔主题,我的环境是Ubuntu16.04 x86_64,GCC5.4.0,automake1.15,bash 4.3.6,qtdefault工具链是Qt5.5.1,还有qt4的工具链Qt4.8.7,都是用apt安装的。

        简直是无比的坑,为了编译这个warzone2100,我还真死了好多脑细胞。

        一开始是下载3.2以上的版本,autogen.sh,并且打入./configure,一段时间后,发现如下

        显示没有发现Qt5,明明我安装了啊?

        查看configure.ac,发现有如下语句

$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5Core Qt5Gui Qt5Widgets Qt5Script Qt5OpenGL Qt5X11Extras"

        代码显示需要使用pkg-config找到Qt5的这几个模块,我找了一下,发现并没有Qt5Script这个模块,我之前使用的Qt5.1也没有着一个模块,难道时apt给改了?我搞不懂,还需要解释一下。

        后来再apt中找到Qt5Script,但是并没有提供pc文件,也就是说pkg-config是找不到的,再Qt5中也不成一个模块。

        无解,于是乎使用apt下载了warzone的源代码,但是在第一个命令时我就跪了。

        automake的版本太高?还有嫌版本高的?这也太扯了吧?降级安装...额,还是算了吧。

        下载warzone3.1.1的代码,因为是使用Qt4,貌似什么模块都有,所以到达make之前的步骤都很顺利,主要的问题都是一些没安装的要安装罢了,最后configure显示使用sdl做窗口。然后我怀着忐忑的心情输入了make...

        果不其然,在编译之中还是出现了错误:

在warzone的公共子模块ivis_opengl的源文件screen.cpp中,出现了类型转换错误:

PFNGLSHADERSOURCEARBPROC=>PFNGLSHADERSOURCEPROC

看似是无伤大雅的问题,改一下源文件,再__glewShaderSourceARB前面加上(PFNGLSHADERSOURCEPROC)就可以了。

继续make...,下一个错误

编译系统使用autorevision(在build_tool中)生成src/autorevision.h.new时,需要使用src/autorevision.cache,但是工程上并没有,猜想可能是autotools版本不同,因此并没有生成autoreversion.cache的缘故,于是我试着再src中新建一个空文件autoreversion.cache,呵呵,居然通过了...

下一个,

version.cpp文件在src中,对71行的#if (VCS_WC_MODIFIED)改为#if defined(VCS_WC_MODIFIED),通过。

下一个,哦,没有下一个了。echo $?表示一切正常,运行一下试试(在src/warzone2100)

终于成功了。

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看