自己创建XXConfig.cmake文件
来源:互联网 发布:windows桌面更新多久 编辑:程序博客网 时间:2024/05/20 14:17
创建自定义的XXConfig.cmake文件:
我们在使用cmake进行代码构建的时候,当需要通过find_package(XXX)来配置相关库的路径(头文件路径、链接库路径)的时候,如果没有在系统环境变量中设置相关的XXX_DIR等,cmake会提示出错。所以所有网上介绍某个库的安装教程中,在最后都会让你设置相关的系统环境变量。这样做一般没什么问题。但是当你由于项目等原因,需要某个库的多个版本。比如需要在机器上安装opencv2.4.9 opencv3.1.0等某个库的多个版本时候,由于系统环境变量对于某个特定的库只能设置一个相关的环境变量,因而,在使用不同版本的opencv时候,需要临时去系统环境变量中修改相关环境的值。这样就比较麻烦了。
有了xxConfig.cmake就方便多了,只需要把xxCongig.cmake放在库目录的顶层文件夹中。
使用xxConfig.cmake的优点
这时候就不需要在系统环境变量中设置include和lib的路径了。当然,系统的path变量中还是要加入dll的路径值,这是程序运行的保证。
示例
比如我自己编写了一个yyl的库,放在YYL文件夹下。YYL文件夹下有三个子文件夹:include、lib、bin。每个文件夹下面放了相应的文件,现在有如下的文件夹结构:
- YYL
- include
- yyl.h
- lib
- yyl.lib
- bin
- yyl.dll
想要实现在cmake中使用find_package(YYL)来设置相关的环境变量,需要在YYL文件夹下创建一个名称为YYLConfig.cmake的文本文件。这里的YYL需要换成你自己对应的库文件名。
一个简单的YYLConfig.cmake文件内容如下(这是个精简的xxConfig.cmake文件,但是已经足够平时的个人使用。如果读者有兴趣,可以参考opencv build目录下的opencvConfig.cmake以及相关文档深入研究):
find_path(YYL_INCLUDE_DIR NAMES yyl.h PATHS “Your_own_path/YYL/include”)
find_library(YYL_LIBRARY NAMES yyl.lib PATHS “Your_own_path/YYL/lib” )
set(YYL_FOUND TRUE)
set(YYL_INCLUDE_DIRS ${YYL_INCLUDE_DIR})
set(YYL_LIBS ${YYL_LIBRARY })
mark_as_advanced(YYL_INCLUDE_DIRS YYL_LIBS )
使用方法:(工具 cmake-gui)
假设这里的YYL为opencv(以opencv为例)
在cmakelist.txt中加入find_package(YYL)
在cmake-gui下点击configure按钮,会提示错误
需要把Opencv_DIR的路径切换到你的opencv路径下包含OpenCVConfig.cmake的文件夹下
再次点击configure,错误消失。
- 自己创建XXConfig.cmake文件
- cmake 为release版本创建pdb文件
- 创建自己的log文件
- 使用CMake创建CEF3的vs2015的工程文件
- Cmake 找不到OpenCVConfig.cmake文件
- CMake创建CTest工程
- CMake创建VTK程序
- CMake创建ITK程序
- 创建自己的dll和lib文件
- 自己实现快捷方式文件的创建
- 自己创建mib2c.XXX.conf文件
- 自己实现快捷方式文件的创建
- 自己创建mib2c.XXX.conf文件
- 创建自己的dll和lib文件 .
- Xcode中自己创建prefix文件流程
- 禁止自己的MAC创建.DS_Store 文件
- C++ 怎么自己创建头文件
- 在沙盒中创建自己想要的文件
- 关于布尔型的输入输出
- NYOJ 独木舟上的旅行
- Spring源代码阅读
- maven打包依赖jar的方式
- bzoj 2194: 快速傅立叶之二 fft
- 自己创建XXConfig.cmake文件
- c语言数组初始化——int a[N] = {0}的探究
- top命令的Load average 含义及性能参考基值
- ajax 是什么?ajax 的交互模型?ajax的优缺点
- 黑客之瞳——调试(二)
- 【bzoj 1491】[NOI2007]社交网络
- 下载微信中的小视频
- ACM英语积累
- [Leetcode] Container With Most Water