musescore :
1.QT上面开发
2. Qt由于版本更新, 更新到QT6了, 构建器由qmake 更换到cmake ,musescore 在QT是用cmake 构建桌面软件包,
3.底层依赖库, 几乎都是音频相关的库
下面是windows 系统下面的依赖库,
![在这里插入图片描述](https://img-blog.csdnimg.cn/c6f0ae3c689940a9ad0724ed0b0726b1.png)
windows 和mac os 构建和编译不一样
windows 有多一个目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/ea0b29e8960e4fd795f3d9cdb6b377c0.png)
dependencies 这个就是windows 的依赖库
mac os 现在是分 m1 也就是ARm64位芯片,musescore 根本不支持m1
4。 musescore 构建区分操作系统,cmake
![在这里插入图片描述](https://img-blog.csdnimg.cn/fc5107496387406381d00b53a806f903.png)
main 主要入口
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9c6e2865f9b4953afb5b21025d7fd52.png)
main 的cmakelists.txt 这个文件会把全部有关模块全部集成起来
![在这里插入图片描述](https://img-blog.csdnimg.cn/fd15eb906d4d4a9f86932309ce1c5e0f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/fa9f3341aaa04853a1b3cb2734ec37a4.png)
mscore 版本不一样, 构建也分操作系统 , 都会有变化。
mscore 的构建都以模块来做的, 把功能分成不同模块,最后在main 集成和加载,
功能模块以库方式, windows 是动态库存dll 静态库lib , mac os 以dylib 和.a 和framework 库
![在这里插入图片描述](https://img-blog.csdnimg.cn/45811157180e4acca587c057c3cb5f0a.png)
编译目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/6a9a3fa7e01241a095b362d8b95e2745.png)
这部份是寻找库
![在这里插入图片描述](https://img-blog.csdnimg.cn/6ab72f2935c34a4a95824be8b592ac45.png)
在mscore 主版本中, build 文件会有一个模块.cmake , 这个cmake 文件作用就是把模块分散文件集成分别生成不同的库文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/e0984a35fa2c42f295e8bd38c4de0f54.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/22ba071a8e3d4641a8d7a0b0d4256169.png)
项目根目录中有一个类文件
all.h
all.cpp
这个类是全局性文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/2ad0962ffb164e65ad2df4d1723f82e1.png)
全局性的文件,主要功能是为每个模块提供 头文件,
现在对mscore