前言
当我们在使用JUCE库的时候,可能会需要使用到静态链接的方式,还好的一点是JUCE本身提供了CMake编译,也提供了单独的sln编译。
本文章仅针对juce-7.0.1-windows,由于不同版本之间差异较大,可能不能通用,但主要的不同点都在修改源码那个环节。
编译流程
- 找到源码中提供的编译方案
- 修改工程中的部分设置
- 修改部分源码以通过编译
1. 找到源码中提供的编译方案
找到路径
…/juce-7.0.1-windows\juce-7.0.1-windows\JUCE\extras\WindowsDLL\Builds\VisualStudio2022
双击使用VS2022点开WindowsDLL.sln,虽然用VS2019也可以,但是不推荐使用不同版本的VS进行编译操作
直接尝试编译试试,这样编译是编不过的,提示报错如下:
C2385 对“delete”的访问不明确 xx\juce-7.0.1-windows\JUCE\modules\juce_audio_processors\processors\juce_GenericAudioProcessorEditor.cpp 152
2.对源码进行部分修改
我在JUCE的开发者论坛上搂了一眼,发现上面有开发者提了这个issue,已在后续版本中修复了
这个问题的具体解决方法就是在错误的类中添加上JUCE_LEAK_DETECTOR宏引用即可,我在此是对 ParameterComponent的尾巴上添加了一个 JUCE_LEAK_DETECTOR(ParameterComponent)
这样就可以生成JUCE的静态链接库了,这是由JUCE官方提供的静态链接库的编译方式
3.修改项目设置,编译动态链接库
右键项目 - >属性->常规->配置类型 修改为动态库.dll
右键项目 - >属性->链接器->输出文件->$(OutDir)\juce_dll.dll
右键项目 - >属性->高级->高级属性->目标文件扩展名->.dll
修改完毕后,重新编辑即可得到JUCE库的动态链接库。
JUCE不算很大,编译出来的文件总共在10MB左右