
一、背景
后面打算拿着搓出来的效果器去 hxd 的录音室插电琴玩,他那边 daw 是 Pro Tools (mac 环境);了解到 Juce 在跨平台使用,尤其是在引入各类外部库来做效果器时,用 Cmake 可以轻松处理各种配置,因此记录一下这个更加灵活的构建方法,及自己在处理过程中遇到的问题和解决方式。
二、通过 Cmake 来构建 Juce 工程
2.1、Cmake Template (模板)
Cmake 构建 Juce 工程的方式是通过 Template 来构建,git 上几个 star 比较高的 Template :
The Audio Programmer 的仓库:
https://github.com/TheAudioProgrammer/JuceAudioPluginTemplate
JanWilczek 的仓库:
https://github.com/JanWilczek/audio-plugin-template
Sudara 的仓库:
https://github.com/sudara/pamplejuce.git
本文就以 cmake 构建的最小模板为例(来自油管主 The Audio Programmer)
模板文件必须要以 git clone 方式来获取,不能使用 zip
拉取过程中注意梯子要稳定能连上仓库,如果 bash 一直报错 Recv failure: Connection was reset,先给梯子挂代理:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
完成拉取后如下图
克隆到本地后,可以找到模板包含的一些东西,最主要的是 CMakeLists.txt 定义了一些在 Projucer 中创建juce时需要的内容:名称、版本、插件和模组 等信息
这是 CMake 用来构建 juce 项目的依据;以及还有一些 Source 中的 cpp 和 .h 文件
后续可以根据自己需要自己弄一些模板出来,用 Cmake 构建,能省不少事
2.2、构建环境
首先弄好 Cmake 环境
Win 系统 Cmake 官网:
https://cmake.org/download/
建议勾选:
在尝试配置之前,需要处理一个Git 配置中 core.autocrlf 的值,在win系统处理这个行尾值会有歧义
Bash 执行
git config --global core.autocrlf true
然后再(根据你的 vs 版本来)
cmake -B build -G "Visual Studio 17 2022"
记得用管理员身份运行 bash,记得保持能和git联络的网络环境
Juce 的环境执行会比较慢,等待几分钟
如果期间出现了错误,记得 挂代理
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
+ 清理 完再重新构建
# 清理rm -rf build# 重新构建cmake -B build -G "Visual Studio 17 2022"
这个界面不要操作,等到出现 Generating done
拉取完成~
如果还是有报错,尝试:
# 强制更新所有子模块到最新git submodule update --init --recursive --force# 清理rm -rf build# 重新构建cmake -B build -G "Visual Studio 17 2022"
在工程目录-build-下找到解决方案文件打开
三、juce 项目编译
== 以管理员身份打开vs并进入sln ==
== 不然权限不够编进VST3 ==
3.1、Standalone 编译
以最简单的UI面板为例,找到 SimpleJucePluginTemplate _Standalone
右键设为启动项目,以 Release 模式构建
可以查看该工程的运行结果面板
如果编译失败,记得清理后再重新编译
3.2、以 VST3 插件编译
找到 SimpleJuccePluginTemplate_VST3 ,同样设置为启动项目并以 x64 Release 模式构建
如果出现如下图所示弹窗,则是构建成功了
如果编译失败,记得清理后再重新编译
如果构建失败请看 Juce学习笔记01 中的方法尝试修复
3.3、尝试扫描 & 挂载插件
开 daw 试试能否被检测到并挂载上去
如果发现扫不到,在解决方案的 VST3 中右键查看属性
把 juce工程\build\plugin\juce工程_artefacts\Release\VST3 下的文件复制到 C:\Program Files\Common Files\VST3 中 然后重启 DAW 扫描,或者指定 DAW 中的插件路径扫描
四、尝试不同 Template 的构建
Jan Wilczek 的模板:
Standalone:
VST3:
Sudara 的模板
Standalone:
VST3:
五、总结
大致步骤:
step1:使用 clone 模式 获取中意的 juce 模板 git 仓库
step2:win 环境需 处理行尾值异常 导致的报错
step3:大陆网络环境需启用小猫 + 挂代理
step4:清理 rm -rf build +重新 cmake -B build -G "Visual Studio 17 2022" 直到完成生成
step5:进入 build 的 sln,并使用vs 管理员权限模式 打开
step6:清理+重新构建直到生成全成功
step7:VST3 生成 路径 检查,保证 daw 可以检测并挂载
资料参考:The Audio Programmer、JanWilczek、Sudara