cmake find_library() 找不到 PATHS 指定的库

黑麦

我有一个find_library()与下面匹配声明(这是基于amazon kinesis 项目):

find_library(SRTP_LIBRARIES NAMES srtp2 REQUIRED PATHS ${OPEN_SRC_INSTALL_LIB_PREFIX})

OPEN_SRC_INSTALL_LIB_PREFIX正确指出到这个库所在的位置。我可以直接观察这一点。但是,这个find_library()调用失败了,我很困惑为什么会这样做。

我想,也许cmake的是通过其他路径优先搜索,而忽略我的指定的路径,所以我也跟试了一下NO_DEFAULT_PATH标志,因为这应该限制搜索在指定的路径:

find_library(SRTP_LIBRARIES NAMES srtp2 REQUIRED PATHS ${OPEN_SRC_INSTALL_LIB_PREFIX} NO_DEFAULT_PATH)

......仍然没有运气。

任何想法为什么这不起作用?我已经OPEN_SRC_INSTALL_LIB_PREFIX通过message()打印验证了库的有效目录

请注意,这是交叉编译,虽然我不明白为什么这会改变行为,find_library()除非我从文档中遗漏了一些东西

黑麦

首先要注意我在cmake17.5。

好的,所以文档有点混乱,但似乎NO_DEFAULT_PATH只使用PATHS参数指定的路径而不使用其他缓存变量,但如果CMAKE_SYSROOT设置了,情况似乎并非如此

使用NO_CMAKE_FIND_ROOT_PATH实际上是导致find_library()忽略缓存路径的原因

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章