cmake学习笔记(七)编写自己的xxxConfig.cmake
cmake学习笔记(七)编写自己的xxxConfig.cmake
- 1. onnxruntimeConfig.cmake
- 2. 进阶版onnxruntimeConfig.cmake
1. onnxruntimeConfig.cmake
因为项目是统一用cmake管理的,因此对于没有xxxConfig.cmake文件的库需要自己编写。
比如:ONNXRUNTIMEConfig.cmake
find_path(ONNXRUNTIME_INCLUDE_DIR NAMES onnxruntime_cxx_api.h PATHS "D:/ProgramFiles/onnxruntime-win-x64-1.8.1/include")
find_library(ONNXRUNTIME_LIBRARY NAMES onnxruntime.lib PATHS "D:/ProgramFiles/onnxruntime-win-x64-1.8.1/lib")
set(ONNXRUNTIME_FOUND TRUE)
set(ONNXRUNTIME_INCLUDE_DIRS ${ONNXRUNTIME_INCLUDE_DIR})
set(ONNXRUNTIME_LIBRARY ${ONNXRUNTIME_LIBRARY})
写成这样就可以使用了。当然路径那里应该使用相对路径才 具有通用性,后面会改正。
参考:编写自定义cmake配置文件FindXXX.cmake或者xxx-config.cmake | cmake with user defined entry
2. 进阶版onnxruntimeConfig.cmake
onnxruntimeConfig.cmake 该文件放置到下载好的onnxruntime库的根目录下,然后指定onnxruntime_DIR到该根目录。
# Custom cmake config file by jcarius to enable find_package(onnxruntime) without modifying LIBRARY_PATH and LD_LIBRARY_PATH
#
# This will define the following variables:
# onnxruntime_FOUND -- True if the system has the onnxruntime library
# onnxruntime_INCLUDE_DIRS -- The include directories for onnxruntime
# onnxruntime_LIBRARIES -- Libraries to link against
# onnxruntime_CXX_FLAGS -- Additional (required) compiler flagsinclude(FindPackageHandleStandardArgs)
set(ONNXRUNTIME_FOUND TRUE) # auto
message("ONNXRUNTIME_FOUND " ${ONNXRUNTIME_FOUND})
# Assume we are in <install-prefix>/share/cmake/onnxruntime/onnxruntimeConfig.cmake
get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
message("CMAKE_CURRENT_LIST_DIR " ${CMAKE_CURRENT_LIST_DIR})
get_filename_component(onnxruntime_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/" ABSOLUTE)set(onnxruntime_INCLUDE_DIRS ${onnxruntime_INSTALL_PREFIX}/include)
set(onnxruntime_LIBRARIES onnxruntime)
set(onnxruntime_CXX_FLAGS "") # no flags neededfind_library(onnxruntime_LIBRARY onnxruntimePATHS "${onnxruntime_INSTALL_PREFIX}/lib"
)message("onnxruntime_INCLUDE_DIRS " ${onnxruntime_INCLUDE_DIRS})
message("onnxruntime_LIBRARY " ${onnxruntime_LIBRARY})add_library(onnxruntime SHARED IMPORTED)
set_property(TARGET onnxruntime PROPERTY IMPORTED_LOCATION "${onnxruntime_LIBRARY}")
set_property(TARGET onnxruntime PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${onnxruntime_INCLUDE_DIRS}")
set_property(TARGET onnxruntime PROPERTY INTERFACE_COMPILE_OPTIONS "${onnxruntime_CXX_FLAGS}")find_package_handle_standard_args(onnxruntime DEFAULT_MSG onnxruntime_LIBRARY onnxruntime_INCLUDE_DIRS)
CMakeLists.txt中的调用:
FIND_PACKAGE(onnxruntime REQUIRED)message("onnxruntime_INCLUDE_DIRS " ${onnxruntime_INCLUDE_DIRS})
message("onnxruntime_LIBRARY " ${onnxruntime_LIBRARY})
cmake学习笔记(七)编写自己的xxxConfig.cmake相关推荐
- cmake 学习笔记(三) (转)
接前面的 Cmake学习笔记(一) 与 Cmake学习笔记(二) 继续学习 cmake 的使用. 学习一下cmake的 finder. finder是神马东西? 当编译一个需要使用第三方库的软件时,我 ...
- python学习笔记之编写readConfig读写配置文件
python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码
吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...
- websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...
Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证 2年前 阅读 3678 评论 0 喜欢 0 ### 0.前言 前面基本的WebSocket操作,我们基本都 ...
- ROS学习笔记七:使用rqt_console和roslaunch
ROS学习笔记七:使用rqt_console和roslaunch 本节主要介绍在调试时使用的rqt_console和rqt_logger_level,以及一次性打开多个节点的工具roslaunch. ...
- CMake 学习笔记 02 - 更复杂的项目
CMake 学习笔记 02 - 更复杂的项目 源代码见 https://github.com/fengyc/cmake-tutorial 源代码目录组织 一般的项目,会划分为多个子目录,每个子目录中包 ...
- 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练
[K210]K210学习笔记七--使用K210拍摄照片并在MaixHub上进行训练 前言 K210准备工作 K210如何拍摄照片 准备工作 拍摄相关代码定义 用K210拍摄到的照片在MaixHub平台 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
最新文章
- 简析Instgram的搜索架构
- 北大OJ百练——4074:积水量(C语言)
- 在hadoop中传递变量
- 华为鸿蒙OS 2.0 发布,18点18分开放源代码
- 虚拟主机网络设备iotlb
- STL应用--SORT自定义排序
- 如何在局域网中的实现文件共享 分配权限给指定用户
- 第二次作业(贪吃蛇)
- MySQL快速上手[学习笔记](三)
- 用友 U8 word模板修改
- linux系统安装步骤
- 球面投影全景图快速拼接
- Eclipse易卡死
- markdown中数学符号和公式总结
- pip 安装 nexmo
- fatal: destination path '.' already exists and is not an empty directory. 错误及解决办法
- python groupby apply_python – 使用自己的函数优化groupby.apply
- 第八章 我国农村商品流通
- 视频监控系统时间显示常见故障分析 及时间同步解决方案
- 找呀找呀找对象(Python查找算法汇总)
热门文章
- mysql中组合索引创建的原则是什么意思_mysql数据库建立组合索引原则
- LabVIEW弹窗实现
- java android 堆栈_如何在Android上的JNI下捕获SIGSEGV(分段错误)并获得堆栈跟踪?...
- nodejs-Joi模块
- Is there anybody in there?
- Anybody Modelling System 骨肌系统建模仿真指导
- 【LC中等】1867. 最大数量高于平均水平的订单
- B站UWP客户端下载视频整理脚本
- 猫声音嘶哑的常见原因
- 服务器操作系统CoreOS初体验