qt编译太阳神三国杀
编译前置条件
- qt环境本文环系统包括win10(qt5.14),deepinv15(qt5.9.9)
- g++编译,本文win10采用的是mingw64编译器
1.下载源码github源码,下载比较慢的去gitee找找
2.下载qt,win和linux自己操作,版本大于5.3就行
3.打开qtCreator,选中源码的.pro文件
4.开始编译
-
下载swig
-
编译swig
-
win10的直接下载可执行版,deepin下载源码,直接 sudo make install
-
利用swig产生sanguosha_wrap.cxx文件
#win10的命令,注意打开cmd的位置为swig所在目录,后面是源码的sanguosha.i位置 swig.exe -c++ -lua E:\qt\workspace\space2\QSanguosha\swig\sanguosha.i #deepin,我直接吧刚刚编译的可执行程序拷贝到源码的sanguosha.i 同一目录下执行命令 swig -c++ -lua ./sanguosha.i
-
-
qt编译源码
1.QSanguosha.pro文件修改 #前三行 TARGET = QSanguosha QT += network widgets sql qml quick core gui //新增一些模板 #!winrt:QT += declarative 这个注释,因为5.9以上没有这个模块了 #弟396行,win10的需要改一下 else:LIBS += -lfmodex 改为else:LIBS += -lfmodex64,这个听说是搞声音的包,具体看自己的编译器位数 2.开始编译会有很多报错,这里修改qt升级不谦容的报错 QSanguosha\src\ui目录下面 roomscene.h文件修改,做出如下修改 #ifndef Q_OS_WINRT //#include <QDeclarativeEngine>,这三个新的qt没有了 //#include <QDeclarativeContext> //#include <QDeclarativeComponent> #include<QQmlEngine> #include<QQmlContext> #include<QQmlComponent> #endif #define QDeclarativeEngine QQmlEngine,下面用到了,为例避免修改去一个别名 #define QDeclarativeContext QQmlContext #define QDeclarativeComponent QQmlComponent 上面修改完,deepin基本没啥问题,win10可能会出现有的类找不到,从报错信息点进去,少了什么类直接加,比如提示QButtonGroup未定义,就去上面加上#include<QButtonGroup>
-
动态库移动至编译的位置
fmodex在源码里面就有,freetype.dll可以直接下载也可以下载源码编译,据说是字体的依赖
win10建议直接下载dll文件gitee下载位置
deepin可以去源码下面找fmodex.so,在lib/linux里面找,找到之后打开终端执行
sudo mv fmodex.so /usr/lib #这样为了方便程序可以找到这个依赖,注意先去/usr/lib检查一下有没有同名的,避免覆盖 #freetype的安装 下载地址 https://mirror.yongbok.net/nongnu/freetype/freetype-2.10.0.tar.gz 2.解压 3.编译安装,执行命令如下 ./configure sudo make install
-
语言包的编译
进入源码的builds/sanguosha.ts win10,进入qt的bin目录执行如下命令 lrelease.exe sanguosha.ts -qm sanguosha.qm deepin 同上,使用界面操作如下 下面显示用图形操作, 复制sanguosha.qm和qt_zh_CN.qm(源文件跟目下有)到编译的exe文件处,deepin方法可执行文件同级目录
-
复制资源到可执行文件所在目录,
ai-selector audio builds ddiy font hero-skin image lang lib lua resource rule skins
-
点击release运行,win10下面如果少了什么dll就直接去qt的bin目录下面找,复制到exe文件同级就行,想要在桌面快捷启动发送一下快捷方式就行,deepin可以直接创建一个桌面快捷方式启动,不会的deep创建桌面快捷启动方式
运行效果图:
玩online花钱还不爽,找到了这个开源的项目,后面可能会用这个练练手,玩一下qt,改改什么武将之类的。
完!