Onnxruntime Builder
编译onnxruntime 动态库和静态库。
- 文件名包含shared代表动态库(windows是onnxruntime.dll,linux是onnxruntime.so,macos是onnxruntime.dylib);
- 文件名包含static代表静态库(***.a);
- 包内添加了简单的cmake,用于cmake系统find_package.
- 仓库的Release的包不支持GPU,仅使用CPU。
- 文件名包含windows,linux,macos,android,代表这4种操作系统平台使用的库;
- 动态库在部署时也必须跟编译出来的可以执行文件一起部署,而静态库编译时会被包含到可执行文件里;
- 静态库部署起来更方便些,但可执行文件体积增大,各有优缺点,按需选择;
- linux版支持不同cpu架构,一般家用pc选择x86_64-linux-musl即可;
- linux版使用musl工具链编译,故最终项目最好也用musl工具链,musl工具链优点是支持静态链接libc,部署时不需要依赖系统的libc库;
- windows版文件名含md代表动态链接crt,文件名含mt代表静态链接crt,静态链接时不需要依赖标准c库,部署时更方便,但文件体积增大;
v1.6.0以下支持vs2017,从v1.7.0开始在windows环境下仅支持vs2019和vs2022版本。
- 官方v1.7.0版本说明 Starting from this release, all ONNX Runtime CPU packages are now built without OpenMP.
- 官方仓库Release的从1.7.0开始,所有CPU版的包编译时没有启用OpenMP选项;
- 本仓库的初始版~1.8.0仍然启用了OpenMP选项,即使用本仓库的这些包时,编译环境要求安装OpenMP;
- 从1.9.0开始,本仓库移除OpenMP编译选项,保持与官方一致;
如果使用官方仓库自带python编译脚本,需要添加--enable_msvc_static_runtime 本仓库使用的cmake编译选项添加
-DONNX_USE_MSVC_STATIC_RUNTIME=ON
-Dprotobuf_MSVC_STATIC_RUNTIME=ON
-Dgtest_force_shared_crt=OFF
-DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$<CONFIG:Debug>:Debug>"
- 从1.9.0开始,移除OpenMP编译选项,保持与官方一致
- v1.9.1
- v1.10.0
- v1.11.0
- v1.11.1
- v1.12.0
- v1.12.1
- windows平台,更早版本的包均为md版,从此版增加链接静态CRT版本(mt)
- 后缀md: 无
- 后缀mt: --enable_msvc_static_runtime
- v1.13.1
- v1.14.0
- v1.14.1
- v1.15.0
- v1.15.1
- 改用cmake 编译
- 使用musl toolchain编译交叉linux版
- windows版增加vs2022