skip to content
Logo Zero's Blog

Windows下编译Aseprite

/ 5 min read

介绍

Aseprite(官网 | GitHub)是一款开源的像素画软件,该软件在 Steam 有售,目前价格为 70 元。但它是开源软件,作者也允许我们自行编译来免费获得这份软件,通过编译得到的软件可用于创作商用作品(https://www.aseprite.org/faq/#can-i-sell-graphics-created-with-aseprite)。

本文介绍在 Windows 11 系统中编译 Aseprite 的流程。受 Aseprite 的 EULA 限制,我不能分享编译好的软件。

环境准备

Visual Studio

Aseprite 不支持使用 MinGW 编译,必须使用 MSVC 编译器。因此需要安装 Visual Studio。从微软官网下载 Visual Studio 社区版的安装程序:https://visualstudio.microsoft.com/zh-hans/downloads/

在 Visual Studio 安装程序中勾选“使用 C++ 的桌面开发”工作负载。如果希望减少安装体积,可以在右侧取消勾选一些默认选项。必须安装的组件是 VS 核心编辑器、MSVC 和 Windows 11 SDK(见下图)(如果你使用 Win10,那么对应的将是 Windows 10 SDK)

img

我这里更改了安装位置,后边编译时配置命令使用自己的安装位置。

Ninja

Ninja 是一个轻量的 C/C++ 构建系统,Github下载地址

img

下载解压后得到一个可执行文件,放到自己需要的位置,然后添加系统环境变量,在Path中新建一条记录。

Terminal window
D:\env\ninja

在cmd中验证是否配置成功

PS C:\Users\xx> ninja --version
1.12.1

CMake

https://cmake.org/ 中下载并安装最新版本的 CMake。

安装很简单一路next即可,会自动添加环境变量到系统中

同样在cmd中验证是否安装成功。

Terminal window
PS C:\Users\xx> cmake --version
cmake version 3.31.5
CMake suite maintained and supported by Kitware (kitware.com/cmake).

拉起源代码

获取 aseprite 源码

从上面的地址中找到最新版,下载到本地然后解压。你也可以 clone 最新的代码(但这样会导致编译出的软件版本号显示不正常。注意LAF框架及其部分依赖是以submodule的形式存在的,所以要加 --recursive 参数

Terminal window
git clone --recursive https://github.com/aseprite/aseprite.git aseprite

在包含源代码文件夹中新建一个build文件夹。

获取预编译的 Skia 库

https://github.com/aseprite/skia/releases 中下载最新的稳定版本(目前是 Skia-m102 版本)的预编译文件,对于 64 位的 Windows 版本,应该下载 Skia-Windows-Release-x64.zip。下载之后解压并重命名为 skia,记下它的路径(本文以 D:\env\skia` 为例)以备后续使用。

配置和编译

如果你的系统中安装有 MinGW,你可能需要暂时将它从 PATH 变量中删除,或者在下面的 CMake 命令中添加额外的 -DCMAKE_IGNORE_PATH=C:\MinGW\bin 参数,注意替换路径。

注意,如果要编译x64的版本,需要先在cmd(不是Powershell)中通过如下命令,打开x64的Visual Studio开发者命令行:

Terminal window
call "D:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" -arch=x64

注意:我这里更改了Visual Studio的安装路径,请根据自己的安装路径修改命令。

img

输入如下命令生成 .ninja 文件,注意把 <Skia路径> 换成你自己的(最后两个点 .. 表示输入文件夹是父目录,不要漏掉了):

Terminal window
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=<Skia路径> -DSKIA_LIBRARY_DIR=<Skia路径>\out\Release-x64 -DSKIA_LIBRARY=<Skia路径>\out\Release-x64\skia.lib -G Ninja ..

最后使用Ninja完成构建,输入:

Terminal window
ninja aseprite

提示符重新出现后,你可以在 aseprite\build\bin 文件夹中找到编译好的 .exe 文件。将整个 bin 文件夹拷贝到你常用的位置,就可以正常使用。build 文件夹中其他文件都可以删除。

汉化和使用

目前这个仓库有针对 1.3 版本的汉化:https://github.com/66six11/Aseprite-Simplified-Chinese

其中还存放有适配了中文字体的像素字体和普通字体的主题。推荐将这些扩展与 aseprite.exe 放置在一起。

你可以在 Aseprite 软件菜单的“编辑-首选项…”菜单中的“扩展”选项卡中安装这些扩展。

最后附一张成品的截图:

img