-
Notifications
You must be signed in to change notification settings - Fork 645
Ubuntu上编译
mercury233 edited this page Jun 8, 2026
·
8 revisions
-
YGOPro发行版
- 用以获取卡片数据库和卡图等资源,其中数据库是必备的
- 也可根据卡片数据库说明自行建立卡片数据库
-
Git
-
build-essential
-
- 项目目前只支持Premake构建系统,CMake因无人维护处于不可用状态
通过apt安装以下系统依赖库:
sudo apt install libevent-dev libfreetype6-dev libgl1-mesa-dev libsqlite3-dev libopusfile-dev libvorbis-dev libjpeg-dev libpng-dev zlib1g-dev liblzma-dev需要手动下载源代码并静态编译的依赖库:
-
- 这是Irrlicht的修改版,增加了中文支持等功能
- 如使用原版Irrlicht,不支持1.8版本,需使用未发布的1.9版(trunk),且输入法和剪切板将无法使用
-
- 仅支持5.3.x和5.4.x版本
- 需要使用C++编译而非默认的C编译,因此建议静态编译
- Ubuntu上也可以通过APT安装
liblua5.4-dev,但生成项目文件时需要手动指定库名和头文件路径
-
- 因项目特点,无法通过APT等包管理器安装,需要静态编译
- 仅支持0.11.25版本,且需使用其中的
miniaudio_split版本
使用Git克隆代码仓库,确保包含所有子模块:
# 完整克隆代码及子模块(推荐方式)
git clone --recursive https://github.com/Fluorohydride/ygopro.git
cd ygopro
# 或分步操作
git clone https://github.com/Fluorohydride/ygopro.git
cd ygopro
git submodule update --init
# 切换子模块到正确分支
cd ocgcore
git checkout master
cd ..
cd script
git checkout master
cd ..- 将下载的Irrlicht解压到项目根目录,并重命名为
irrlicht - 将下载的Lua解压到项目根目录,并重命名为
lua - 下载miniaudio,并将
miniaudio/extras/miniaudio_split中的c和h文件复制到项目根目录中的miniaudio文件夹(请手动创建)
将premake文件夹内所有子文件夹复制到项目根目录,这些文件夹包含了编译各个依赖库所需的premake描述文件。
cp -r premake/* .下载premake5可执行文件,给予执行权限并运行:
chmod +x premake5
./premake5 gmake如果你已经从APT安装Lua,改用以下命令,并将其中文件名和路径改为实际值:
./premake5 gmake --no-build-lua --lua-lib-name="lua5.4-c++" --lua-include-dir="/usr/include/lua5.4/" 这将在build文件夹中生成Makefile。
配置成功后,项目目录结构大致如下(部分文件省略):
├── build
├── gframe
├── irrlicht
│ ├── include
│ └── source
│ └── Irrlicht
├── lua
│ └── src
├── miniaudio
├── ocgcore
├── script
├── sound
└── textures
在项目根目录运行:
cd build
make config=release # 或 make config=debug编译完成后,生成的可执行文件位于 bin/release 或 bin/debug 目录下。
-
从YGOPro发行版中复制以下文件到项目根目录:
cards.cdb-
pics文件夹 -
deck文件夹
-
建立符号链接以便于运行:
ln -s bin/release/YGOPro ./ygopro # 或 ln -s bin/debug/YGOPro ./ygopro -
运行
./ygopro
见 编译常见问题