有没有一种方法可以摆脱“不”这个词;新的Boost版本可能具有不正确或缺少的依赖项和导入的目标”;警告

有没有一种方法可以摆脱“不”这个词;新的Boost版本可能具有不正确或缺少的依赖项和导入的目标”;警告,boost,cmake,Boost,Cmake,我正在使用CMake和Boost。我使用的是Boost 1.68.0和CMake 3.11.0。我无法升级到较新版本的CMake,因为cotire阻止在CMake 3.12.0及更高版本上生成moc文件。但是,这会导致以下警告:新的Boost版本可能具有不正确或缺少的依赖项和导入的目标。一切正常,它可以找到正确的文件,但这个警告相当烦人。有没有办法在保留当前版本的Boost和CMake的同时禁用此警告?由于您安装了最新版本的Boost,如果我们转到引发此错误的行,我们会发现: if(NOT Bo

我正在使用CMake和Boost。我使用的是Boost 1.68.0和CMake 3.11.0。我无法升级到较新版本的CMake,因为cotire阻止在CMake 3.12.0及更高版本上生成moc文件。但是,这会导致以下警告:
新的Boost版本可能具有不正确或缺少的依赖项和导入的目标。一切正常,它可以找到正确的文件,但这个警告相当烦人。有没有办法在保留当前版本的Boost和CMake的同时禁用此警告?

由于您安装了最新版本的Boost,如果我们转到引发此错误的行,我们会发现:

if(NOT Boost_VERSION VERSION_LESS 107100)
      message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
endif()

它不会改变任何东西,只需继续运行或降级您的boost安装。

根据在CMake bug tracker中找到的这条说明,它应该可以添加
无模块
配置
CMake_FIND_PACKAGE\u首选配置
,而不是
查找_PACKAGE(boost)
调用以强制避免FindBoost模块文件

如果您的客户使用的是较新的CMake,并且保证使用的boost版本足够新,可以通过配置文件支持CMake查找,而不是通过CMake附带的FindBoost模块文件支持CMake查找,那么将其中一个关键字添加到find_包调用中可能是一个解决方案。

CMake-DBoost\u NO\u WARN\u NEW\u VERSIONS=1

要消除警告,您需要检查
\cmake\share\cmake-3.19\Modules中的FindBoost.cmake文件

打开命令提示符,将cd放入上述目录,然后通过键入以下内容打开FindBoost.cmake文件:

notepad FindBoost.cmake
在该文件中,您将发现一个带有上述警告的if-else语句。然后检查它,从中你可以找出哪个版本的boost不会给你警告,然后使用那个版本


希望这会有帮助

那么,如何消除这一警告呢?这并不能回答这个问题。一旦你有足够的钱,你将能够;相反-