c++ - 如何设置相对于 CMakeList.txt 中上层子目录的相对路径?
问题描述
我正在修改 CMakeLists.txt 以编译具有依赖项的库。我很困惑如何提供到上面子目录中位置的相对路径CMAKE_CURRENT_LIST_DIR
。通常,我会使用CMAKE_CURRENT_LIST_DIR
创建相对路径,或使用绝对路径。后者在这里不是一个选择。
这是我的情况:
使用 CMakeLists.txt,它目前无法通过以下方式找到其他库(此处FIRST
、、、SECOND
和THIRD
)
find_package(FIRST REQUIRED)
find_package(SECOND REQUIRED)
所以,我想通过以下方式设置 include/lib 路径:
FIRST_INCLUDE_DIR=
FIRST_LIBRARY=
SECOND_INCLUDE_DIR=
SECOND_LIBRARY=
目前,对于当前正在处理的listfile的完整目录,如下
message("${CMAKE_CURRENT_LIST_DIR}")
输出
/home/travis/build/repohandle/libraryname/00_pkg_src/libraryname/src/package
但是, 和 的位置FIRST
在SECOND
这里:
/home/travis/build/repohandle/libraryname/00_pkg_src/libraryname/src/first
/home/travis/build/repohandle/libraryname/00_pkg_src/libraryname/src/second
我如何链接到/src/first
并/src/second
使用相对路径?
就像是:
FIRST_INCLUDE_DIR="${SOME_LOCATION}/src/first/include"
FIRST_LIBRARY="${SOME_LOCATION}/src/first/"
SECOND_INCLUDE_DIR="${SOME_LOCATION}/src/second/include"
SECOND_LIBRARY="${SOME_LOCATION}/src/second/include"
解决方案
推荐阅读
- python - 根据来自另一个数据帧的范围从数据帧中选择最小值
- java - java链表从数组插入问题
- gmail - 为什么 gmail 在没有手动注释的情况下自动向我的电子邮件添加交易徽章
- python - 在 pandas 中查找存在多个月的列值
- javascript - 为什么浏览器不支持自定义 onbeforeunload 消息?
- protractor - 量角器 - 选择同一级别的第二个或第三个元素
- python-3.x - 递归问题中使用不同参数多次调用的函数
- reactjs - Mongoose - 检查数据库是否存在
- python - 为什么在这里设置相等中断?
- c# - 生成的绑定删除泛型