mac编译vst3sdk
不是永久全局生效,是“对该构建目录一次生效”。同一 -B /Users/jack/vst3sdk/build-release 下配置会被缓存;以后只需构建即可。
/usr/local/bin/cmake -S /Users/jack/vst3sdk -B /Users/jack/vst3sdk/build \-DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
cmake --build /Users/jack/vst3sdk/build -- -j"$(sysctl -n hw.logicalcpu)"
/usr/local/bin/cmake -S /Users/jack/vst3sdk -B /Users/jack/vst3sdk/build-release \-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"cmake --build /Users/jack/vst3sdk/build-release -- -j"$(sysctl -n hw.logicalcpu)"lipo -info /path/to/your/library.dylib 查看文件架构
LTO优化:
/usr/local/bin/cmake -S /Users/jack/vst3sdk -B /Users/jack/vst3sdk/build-release \-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
要点
作用: 把各个源文件的优化延伸到链接阶段,跨文件做内联、常量折叠、去死代码,通常带来更快、更小的可执行/库。
收益: 运行时性能↑(常见为几%到十几%,视项目而定)、体积↓。
代价: 链接时间更长、内存占用更高;增量构建变慢。与某些预构建第三方库混用时优化空间有限。
通用二进制影响: 无运行时损失;只是每个架构都各自做一遍 LTO,构建更慢。
强制 ThinLTO(Apple Clang 常用,链接更快,收益接近 Full LTO):
"
Xcode 生成器也可用(CMake 打开 IPO 后会同步 Xcode 的 LTO 设置)。