为什么cmake选错了库?

时间:2015-03-03 15:07:55

标签: c++ cmake glog

我在我的cmake中有这一行来选择glog库:

find_library(GLOG_LIBRARY libglog $ENV{GLOG_DIR}/x64/Release)
message(${GLOG_LIBRARY})

并在发布文件夹中我有这些文件:

03/03/2015  15:00           308,736 libglog.dll
03/03/2015  15:00            64,998 libglog.exp
03/03/2015  15:00           104,884 libglog.lib
03/03/2015  15:00         3,248,128 libglog.pdb

但是当我运行cmake时,我可以看到GLOG_LIBRARY设置为libglog_static.lib

为什么cmake会得到错误的库?

1 个答案:

答案 0 :(得分:1)

好的,所以问题在于,首次执行脚本后,很可能是使用提示的代码更改。默认情况下,CMake会缓存其标准函数的大多数值。

默认情况下,

find例程首先检查变量是否存在于缓存中,因此即使您更改了代码,它也可能看起来不起作用。人们确实需要在尝试新版本之前手动清除缓存,或者如果某种方式配置发生变化 - 例如使用某些更改版本或更改解析过程的标志 - 如果变量的名称相同,则将从缓存中提取。

搜索过程以及参数在文档中进行了描述:http://www.cmake.org/cmake/help/v3.0/command/find_library.html