本帖发布的是 Qsynth 的 64 位 Windows 构建版,添加了简体中文翻译文件。Qsynth 是用 Qt 框架制作的 FluidSynth 图形化前端程序,是一个 SoundFont 软件合成器。它的应用场景与 CoolSoft VirtualMIDISynth 相近,但并不创建虚拟 MIDI 设备,而是通过 MIDI 端口进行连接。
下载链接:https://wwbpn.lanzn.com/iMr383r4cmcb 密码:4sg2
构建所依赖的已文件上传至 GitHub:https://github.com/JiayuYangX/qsynth-win-x64-chs
以下内容与 GitHub 仓库的说明文档相同。
前言
由于 Qsynth 自 1.0 版本更新以来就没有上传过官方构建的 Windows 二进制程序,我决定自行下载最新版的源码完成构建。我原先用 MSYS2 UCRT64 环境进行构建,由于 MinGW-w64 提供的二进制包大多使用软链接,构建的程序在未安装环境电脑上安装会提示 DLL 缺失。最后我改用 Qt 6 SDK 和官方编译的 fluidsynth-win10-x64-cpp11 完成构建,用 NSIS 进行打包,并添加了汉化文件。大部分汉化工作由大模型完成,我只进行校对和润色。
由于本人是初学者,构建过程当中踩了不少坑,故在此把自己的构建流程和需要注意的细节发出来,可以给有相同需求的人做个参考。
构建流程
环境安装
从 https://www.qt.io/development/download-qt-installer-oss 下载 Qt SDK 网络安装包。安装打开后会要求登录 Qt 账户,注册账户登录即可,勾选相关协议即可进入安装程序。将安装目录放置在一个空间足够的分区,仅勾选“用于桌面开发的 Qt 库”即可继续。若选择自定义安装,请确保勾选 MinGW 环境和 CMake 构建工具。一直点击下一步直到开始安装。
另外需要安装 NSIS 打包程序进行安装包制作。Windows 平台上下载官方安装包即可,链接如下:https://nsis.sourceforge.io/Download。
接下来就是准备构建依赖的软件包,除了已安装的 Qt,就是构建流程中用于检查包的 pkg-config 和软件本身依赖的 FluidSynth。可以直接将本仓库 packages 目录下两个文件夹里的内容分别复制到 Qt/6.x.x/mingw_64,也可以参考以下流程:
pkg-config 没有提供官方编译版,推荐直接从 MSYS2 的包索引网站上下载:https://packages.msys2.org/packages/mingw-w64-ucrt-x86_64-pkg-config。
而 FluidSynth 建议下载官方构建版:https://github.com/FluidSynth/fluidsynth/releases,推荐选择后缀为 cpp11 的版本,因为依赖的 DLL 最少,在打包的时候比较方便。
下载之后打开两个软件包压缩文件,进入到能看到 bin 文件夹的目录,将该目录下的所有文件解压到 Qt/6.x.x/mingw_64 目录里。
用文本编辑器打开 Qt/6.x.x/mingw_64/lib/pkgconfig/fluidsynth.pc 文件,删除 Requires.private: sndfile 这一行,因为这是编译 fluidsynth 时所依赖的包,而下载的版本已经构建完毕,依赖项都编译在 bin/sndfile.dll 里了;如果不删除这一行,pkg-config 在进行包检查时就会持续报错,直到把依赖的所有包安装完为止。变动如下:
修改完毕环境就算安装完了。
修改配置
如果确保环境配置一致,可直接下载本仓库进行构建。也可以参考一下流程自己修改:
从 https://qsynth.sourceforge.io/qsynth-downloads.html#Downloads 下载 Qsynth 源代码,解压到一个合适的工作目录。
将我提供的 qsynth_zh_CN.ts 简体中文翻译文件放置于 src/translations 目录下。打开 src/CMakeLists.txt,在 set (TRANSLATIONS ... ) 里最后一行添加 translations/qsynth_zh_CN.ts 。如下:
接着用文本编辑器打开 src/win32/setup.nsi.in 文件,这个文件用作模板生成 NSIS 打包文件。先添加翻译文件:找到 Section -Main SEC0000,补上 File ${BINARY_FILES}\qsynth_zh_CN.qm 和 File ${BINARY_FILES}\translations\qt_zh_CN.qm 两行。
由于开发者使用的 FluidSynth 大概率是自己构建的,而我们使用的是官方构建版,因此需要根据实际情形对打包文件进行修改。注释下面从 libFLAC.dll 到 libvorbisenc-2.dll 的全部行,再在 libfluidsynth-3.dll 那一行下面补上 sndfile.dll(以上库在官方构建版中已经全部被编译进 sndfile.dll 中了)。另外注释倒数第二行的 qopensslbackend.dll(文件缺失会报错)。具体变动可参考下图:
然后定位到卸载部分 Section /o -un.Main UNSEC0000 ,执行同样的操作:
最后在 # Installer languages 下面添加 !insertmacro MUI_LANGUAGE "SimpChinese" ,如下:
构建、打包
打开随 SDK 安装附带的 Qt Creator 程序,点击右上角的“打开项目”,选择刚刚解压的源代码文件夹里的 CMakeLists.txt。然后在“项目”栏里取消勾选 Debug,勾选 Release(Release 会去除调试符号,体积更小)。点击右下角 Configure Project。配置完成后点击左下角的“构建项目”图标,等待运行完成。
待构建完成后, 打开 NSIS 图形界面,点击“Compile NSI scripts”,在打开的窗口里点击菜单 File > Load Script…,打开 build/Desktop_Qt_xxx/src/setup.nsi 文件,会自动运行打包。也可以在配置环境变量后,用 makensis setup.nsi 进行打包。生成的 qsynth-x.x.x-x.x.win-x64-setup.exe 就是安装程序。





