【发布时间】:2016-07-07 13:24:52
【问题描述】:
您好,我有以下代码,我希望如果库不存在 cmake 会抛出错误
find_library( lx
NAMES libx.a
HINTS "/home/username/HDF_SOURCES/lib")
if(NOT lx)
message(FATAL_ERROR "libx.a not found")
endif()
我也尝试过 if(lx-NOTFOUND) 但即使库不存在,cmake 也会成功运行。 !! ?
令人困惑的部分是,如果我用 if(lx) 更改循环并且库路径错误,那么它会引发错误。这怎么可能 ?我是不是理解错了?
我在关注this的回答
【问题讨论】:
-
你确定
lx没有被缓存吗? -
find_library()确实将其结果存储在缓存变量中。因此,如果它只找到了一次库,它就不会再次运行搜索。在find_library()调用之前尝试unset(lx CACHE) 来验证这一点。 -
不,它没有被缓存,我一直在删除文件。
-
我添加了 NO_DEFAULT_PATH 并且现在可以使用了吗?你知道为什么会这样吗?
标签: cmake