Mac下编译太阳神三国杀源码

Mac系统版本是10.13.2,Qt版本是5.11,参考官方博文:太阳神三国杀 Mac 版构建指南

  1. 安装Qt5
    下载最新的Qt5安装包qt-opensource-mac-x64-5.11.0.dmg,安装步骤可参考博文 https://blog.csdn.net/qq_37486501/article/details/80632151
    安装过程类似,只不过版本不同,这里使用的版本是5.11。创建快捷方式可参考我的博文 Mac下在Qt5里面测试liblua.a和libtolua.a库

  2. 编译swig
    因为太阳神三国杀源码界面用的Qt编写,而武将技能和场景用的是LUA脚本,将这两种结合在一起的工具用的就是swig,swig下载地址
    这里下载的是当前最新的源码swig-3.0.12.tar.gz文件,打开终端,使用命令将其解压

tar -zxf swig-3.0.12.tar.gz

然后进入解压目录,进行配置

cd swig-3.0.12
./configure --without-pcre

注意这里要看清楚,带参数是两个-,官网上不知是页面显示问题还是其他原因,我复制过来变成一个-了,结果就报错:

./configure –without-pcre
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: –without-pcre
checking build system type... Invalid configuration `–without-pcre': machine `–without' not recognized
configure: error: /bin/sh Tools/config/config.sub –without-pcre failed

看到下面显示证明配置成功了:

config.status: creating Makefile
config.status: creating config.h

The SWIG test-suite and examples are configured for the following languages:
perl5 php python ruby 

接下来就可以进行编译了:

make
sudo make install

没有出现错误就证明编译成功了,接下来就可以编译三国杀源码了

  1. 三国杀源码编译
    首先下载源码,GitHub上有最新源码:三国杀源码下载
    解压后进入源码的swig目录,输入命令:
cd swig
swig -c++ -lua sanguosha.i

得到sanguosha_wrap.cxx文件后,就可以使用QtCreator打开QSanguosha.pro工程了,打开过程在官方都有说明,这里就不再赘述了。直接说编译过程,刚打开工程就报错了:
工程报错
看一下.pro工程文件出错位置:
出错位置
这份三国杀代码是依照Qt4写的,而Qt5把declarative已经改为qml和quick了,所以这里需要改一下:
修改添加模块
继续编译,又出错了:
无法找到头文件
看来不止需要修改工程文件添加的模块,连类名都改变了,QtDeclarative变为QtQuick了,修改src目录的pch.h文件:
修改QtQuick类名
类似的还有roomscene.h和roomscene.cpp文件,QDeclarativeEngine,QDeclarativeContext和QDeclarativeComponent在Qt5里分离成Qml的QQmlEngine,QQmlContext和QQmlComponent了,对应修改一下就可以了:
头文件修改
源文件修改
改好后再次编译,终于成功了,先别顾着高兴,记得把一些资源文件拷贝到运行文件所在目录啊。找到编译生成目录:
编译生成文件
看到这个有图标的文件,右键“显示包内容”,就可以进入目录中了,把
audio,diy,etc,font,image,lang,lua,skins,ui-script,qt_zh_CN.qm和库文件libfreetype_D.a,libfreetype.a拷贝到Contents/MacOS/目录下,至于官网说的ai-selector,rule和sanguosha.qss文件在源码里并没有找到。最后我到目录文件如下:
运行目录文件
赶紧运行程序试一下吧:
运行程序
提示了一个小问题:
字体问题
但是好在不影响程序运行,界面还是出来了:
三国杀界面
至于问题嘛,以后有空再分析下源码,我先杀一局去了,再见。。。

猜你喜欢

转载自blog.csdn.net/xinxin_2011/article/details/84675420