为什么cmake找不到错误的库?

why cmake find the wrong library?

我有这个代码:

file(TO_CMAKE_PATH $ENV{LIBLAS_DIR} LIBLAS_DIR)
find_path(LIBLAS_INCLUDE_DIRS liblas/liblas.hpp PATHS ${LIBLAS_DIR}/include)
message(STATUS Value before finding= ${LIBLAS_LIBRARY_DEBUG})
find_library(LIBLAS_LIBRARY_DEBUG liblas HINT ${LIBLAS_DIR}/../build/bin/Debug)
message(STATUS Value after finding= ${LIBLAS_LIBRARY_DEBUG})

我正在为 LIBLAS_LIBRARY_DEBUG

获取此值
Valuebeforefinding=
Valueafterfinding=C:/Local/LibLas/build/bin/Release/liblas.lib

我确定它没有从缓存中获取,因为我删除了构建目录,正如您所看到的,在调用查找库之前该变量的值为空,因此它没有从缓存中获取它的值。

知道为什么 cmake 从错误的地方获取它的值吗?

您在 find_library 调用中出错:参数名称是 HINTS,而不是 HINT:

find_library(LIBLAS_LIBRARY_DEBUG liblas HINTS ${LIBLAS_DIR}/../build/bin/Debug)