如何将CMAKE\u FIND\u LIBRARY\u后缀设置为nothing

如何将CMAKE\u FIND\u LIBRARY\u后缀设置为nothing,cmake,Cmake,我在编写查找脚本时遇到了一个问题。出于某种原因,自动追加后缀不起作用:只找到扩展名为.dylib的库文件,而没有找到扩展名为.a或根本没有扩展名的文件 通过实际实验,我将CMAKE_FIND_LIBRARY_后缀设置为空值,然后恢复该值。然而,这有以下影响: 首次运行cmake时,生成失败,出现“cmake错误:未设置错误要求的内部cmake变量,可能无法正确生成cmake。缺少的变量是cmake\u FIND\u LIBRARY\u后缀” 当我以同样的方式第二次运行cmake时,生成就成功了

我在编写查找脚本时遇到了一个问题。出于某种原因,自动追加后缀不起作用:只找到扩展名为
.dylib
的库文件,而没有找到扩展名为
.a
或根本没有扩展名的文件

通过实际实验,我将CMAKE_FIND_LIBRARY_后缀设置为空值,然后恢复该值。然而,这有以下影响:

  • 首次运行cmake时,生成失败,出现“cmake错误:未设置错误要求的内部cmake变量,可能无法正确生成cmake。缺少的变量是cmake\u FIND\u LIBRARY\u后缀”

  • 当我以同样的方式第二次运行cmake时,生成就成功了

  • 我的猜测是,找到的东西保存在缓存中,用于查找它们的脚本不会再次运行

    我的问题是,我如何解决这个问题,并确保找到我的框架(没有后缀)和cmake不停止生成

    我正在MacOS上生成Xcode。

    不确定分配单个空扩展名列表的“官方”方式是什么,但您可以分配两个空扩展名列表:

    set(CMAKE_FIND_LIBRARY_SUFFIXES ";")
    

    与空值不同,此赋值将通过可能的健全性检查,如
    if(CMAKE\u FIND\u LIBRARY\u后缀)
    ,这可能存在于CMAKE代码中,因为它报告“错误要求内部CMAKE变量未设置”。

    您可以尝试将
    CMAKE\u FIND\u LIBRARY\u后缀的值设置为
    (单分号)。从技术上讲,这意味着一个包含两个空值的列表,但它可能会通过一致性检查,如
    if(CMAKE\u FIND\u LIBRARY\u后缀)
    。请将其添加为答案。我愿意接受