在 macOS 上,如果您已经从 GitHub Releases 下载了 `onnxruntime-osx-arm64-1.18.1` 包,您可以按照以下步骤将其配置到 CLion 中:
1. **解压下载的包**:
找到下载的文件并解压它。通常,双击文件或使用终端命令 `tar` 可以解压:
```bash
tar -xzf onnxruntime-osx-arm64-1.18.1.tar.gz -C /path/to/extract
```
2. **确定包含和库目录**:
解压后,您将得到包含头文件和库文件的目录。通常,这些目录可能被命名为 `include` 和 `lib`。
3. **打开 CLion 项目**:
打开您想要使用 ONNX Runtime 的 CLion 项目。
4. **编辑 CMakeLists.txt**:
找到项目的 `CMakeLists.txt` 文件,并添加以下内容以包含 ONNX Runtime 的头文件和库文件:
```cmake
# 设置 ONNX Runtime 包含目录
include_directories(/path/to/extract/include)
# 设置 ONNX Runtime 库目录
link_directories(/path/to/extract/lib)
```
5. **链接库文件**:
在 `CMakeLists.txt` 中,使用 `target_link_libraries` 命令将 ONNX Runtime 库链接到您的项目:
```cmake
# 假设您的目标是可执行文件,名称为 "your_app"
target_link_libraries(your_app PRIVATE "/path/to/extract/lib/libonnxruntime.dylib")
```
6. **重新加载 CMake 配置**:
在 CLion 中,您可以点击右上角的 "Reload CMake Project" 按钮来重新加载项目配置。
7. **构建项目**:
构建您的项目,CLion 将使用指定的包含路径和库路径来编译和链接。
8. **验证安装**:
构建完成后,运行您的应用程序以验证 ONNX Runtime 是否已正确配置和链接。
9. **调整环境变量** (可选):
如果您希望在终端中使用 ONNX Runtime 命令行工具,您可以将库的路径添加到 `DYLD_LIBRARY_PATH` 环境变量:
```bash
export DYLD_LIBRARY_PATH=/path/to/extract/lib:$DYLD_LIBRARY_PATH
```
10. **解决任何问题**:
如果在构建过程中遇到问题,检查是否有任何缺失的依赖项或配置错误,并根据错误消息进行调整。
请注意,上述路径 `/path/to/extract` 应替换为您实际解压 ONNX Runtime 的路径。如果您下载的包结构不同,可能需要相应地调整包含和库目录的路径。
根据您提供的信息,您希望在 `CMakeLists.txt` 中使用您下载的 `onnxruntime-osx-arm64-1.18.1` 包。以下是修改后的 `CMakeLists.txt` 文件,它将使用您提供的包含和库目录:
```cmake
cmake_minimum_required(VERSION 3.5)
project(HelloOpenCV)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 添加编译选项
add_compile_options(-Wall -Wextra -Wpedantic)
# 查找并包含 OpenCV
find_package(OpenCV REQUIRED)
# ONNX Runtime 头文件和库文件的路径
set(ONNXRUNTIME_INCLUDE_DIR "/Users/admin/Documents/onnxruntime-osx-arm64-1.18.1/include")
set(ONNXRUNTIME_LIBRARIES "/Users/admin/Documents/onnxruntime-osx-arm64-1.18.1/lib/libonnxruntime.dylib")
# 包含头文件路径
include_directories(
${ONNXRUNTIME_INCLUDE_DIR}
${OpenCV_INCLUDE_DIRS}
)
# 添加可执行文件
add_executable(HelloOpenCV main.cpp)
# 链接 OpenCV 库
target_link_libraries(HelloOpenCV PRIVATE ${OpenCV_LIBS})
# 链接 ONNX Runtime 库
if(EXISTS ${ONNXRUNTIME_LIBRARIES})
target_link_libraries(HelloOpenCV PRIVATE "${ONNXRUNTIME_LIBRARIES}")
else()
message(WARNING "ONNX Runtime library not found. Please check the path and library name.")
endif()
```
### 说明:
1. **C++ 标准和编译选项**:保留了您设置的 C++ 17 标准和编译选项。
2. **OpenCV**:使用 `find_package` 自动查找和包含 OpenCV。
3. **ONNX Runtime 路径**:将头文件和库文件的路径设置为您提供的路径。
4. **包含目录**:使用 `include_directories` 命令包含 ONNX Runtime 和 OpenCV 的头文件目录。
5. **可执行文件**:定义了名为 `HelloOpenCV` 的可执行文件,它将链接 OpenCV 和 ONNX Runtime 库。
6. **链接库**:使用 `target_link_libraries` 将 OpenCV 和 ONNX Runtime 库链接到您的可执行文件。
7. **条件链接**:添加了一个条件检查,以确保 ONNX Runtime 库文件存在。如果不存在,将显示警告消息。
请注意,`include_directories` 命令在新的 CMake 版本中已被弃用,建议使用 `target_include_directories` 替代。但是,为了保持代码的简洁性和兼容性,这里仍然使用了 `include_directories`。如果您使用的是 CMake 3.11 或更高版本,可以考虑使用 `target_include_directories`。