您的位置:首页 > 其它

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

2018-12-01 17:57 741 查看

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文件:

类似的还有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文件在源码里并没有找到。最后我到目录文件如下:

赶紧运行程序试一下吧:

提示了一个小问题:

但是好在不影响程序运行,界面还是出来了:

至于问题嘛,以后有空再分析下源码,我先杀一局去了,再见。。。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: