首页 > 解决方案 > CMake find_library 可以搜索其他“驱动器”吗?

问题描述

语境:

我有一个Findxxxx.cmake脚本像魅力一样工作了一段时间。
我想更改存储我的依赖项的目录,因此我将其复制到已安装的网络共享中(即在不同的“字母”下)。我相应地更新了 PATH 但运气不好,我的依赖关系不再被发现。

我将 PATH 恢复为指向原始依赖项位置(我从未删除过),并且它再次开始查找库。

由于我只是将依赖项目录复制到另一个位置,因此我有一种不好的感觉,即 CMake 在新位置找不到库是因为它位于不同的驱动器上,并带有不同的“字母”......

我查看了find_library文档,但没有发现任何关于驱动器号的限制。

你们怎么看?

编辑:这是我的 Findxxxx.cmake。是为了搜索libsodium

find_path (
    LIBSODIUM_INCLUDE_DIRS
    NAMES sodium.h
    HINTS ${PC_LIBSODIUM_INCLUDE_HINTS}
)

find_library (
    LIBSODIUM_LIBRARIES
    NAMES sodium libsodium
    HINTS ${PC_LIBSODIUM_LIBRARY_HINTS}
)

include(FindPackageHandleStandardArgs)

find_package_handle_standard_args(
    LIBSODIUM
    REQUIRED_VARS LIBSODIUM_LIBRARIES LIBSODIUM_INCLUDE_DIRS
)
mark_as_advanced(
    LIBSODIUM_FOUND
    LIBSODIUM_LIBRARIES LIBSODIUM_INCLUDE_DIRS
)

编辑 2:刚刚尝试通过 PowerShell 而不是好的旧 CMD,它似乎在这两种情况下都有效。

标签: c++windowscmake

解决方案


推荐阅读