Ubuntu16.04編譯Warzone2100

        不說別的了,直奔主題,個人環境是Ubuntu16.04 x86_64,GCC5.4.0,automake1.15,bash 4.3.6,qtdefault工具鏈是Qt5.5.1,還有qt4的工具鏈Qt4.8.7,都是用apt安裝的。bash

        簡直是無比的坑,爲了編譯這個warzone2100,我還真死了好多腦細胞。工具

        一開始是下載3.2以上的版本,autogen.sh,而且打入./configure,一段時間後,發現以下ui

        顯示沒有發現Qt5,明明我安裝了啊?code

        查看configure.ac,發現有以下語句ip

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

        代碼顯示須要使用pkg-config找到Qt5的這幾個模塊,我找了一下,發現並無Qt5Script這個模塊,我以前使用的Qt5.1也沒有着一個模塊,難道時apt給改了?我搞不懂,還須要解釋一下。get

        後來再apt中找到Qt5Script,可是並無提供pc文件,也就是說pkg-config是找不到的,再Qt5中也不成一個模塊。qt

        無解,因而乎使用apt下載了warzone的源代碼,可是在第一個命令時我就跪了。io

        automake的版本過高?還有嫌版本高的?這也太扯了吧?降級安裝...額,仍是算了吧。編譯

        下載warzone3.1.1的代碼,由於是使用Qt4,貌似什麼模塊都有,因此到達make以前的步驟都很順利,主要的問題都是一些沒安裝的要安裝罷了,最後configure顯示使用sdl作窗口。而後我懷着忐忑的心情輸入了make...class

        果不其然,在編譯之中仍是出現了錯誤:

在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)

終於成功了。

相關文章
相關標籤/搜索