Build 项目未使用CMAKE_工具链_文件

Build 项目未使用CMAKE_工具链_文件,build,makefile,cmake,build-process,Build,Makefile,Cmake,Build Process,Cmake在生成一个第三方脚本时发出以下警告: CMake Warning: Manually-specified variables were not used by the project: CMAKE_TOOLCHAIN_FILE 有什么常见的建议我需要检查什么或者如何解决这个问题吗?这是当您给它一个命令行选项时它不使用的标准警告。这就是当CMakeLists.txt不使用FOO变量时,将-DFOO=bar赋予cmake 现在,这里有一个特殊的例子:CMAKE_工具链_文件

Cmake在生成一个第三方脚本时发出以下警告:

CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_TOOLCHAIN_FILE

有什么常见的建议我需要检查什么或者如何解决这个问题吗?

这是当您给它一个命令行选项时它不使用的标准警告。这就是当CMakeLists.txt不使用FOO变量时,将
-DFOO=bar
赋予cmake

现在,这里有一个特殊的例子:CMAKE_工具链_文件在您第一次配置构建时由CMAKE使用,但是由于您不能为已配置的构建更改工具链,因此每隔一次都会忽略它,因此会发出警告


正如@Answeror所说,您可以安全地忽略警告,但如果它真的困扰您,您可以通过向cmake提供
--no warn unused cli
来隐藏它。

以防在设置
-DCMAKE\u TOOLCHAIN\u FILE=xxx
选项,您将希望删除所有CMake生成目录

然后删除所有生成目录。那就做吧

Tools-> CMake -> Reload the CMake Project

一旦这样做,您仍然会收到警告,但至少在第一次运行cmake时会看到警告。

正如@js所指出的,这里也发生了同样的情况,这通常意味着您已经从过去的配置中构建了cmake的副本

执行一个
rm-rf CMakeCache.txt CMakeFiles/
,消息将在您第一次执行
cmake-DCMAKE\u TOOLCHAIN\u FILE=foo.cmake.
时消失。第二次,他们会再次出现在那里,正如@Guilaume所回答的那样,没关系

附言:
我首先做了一个
git clean--force
,但由于这些文件通常在
.gitignore
中,因此不会重置构建。

这个特定未使用变量的原因已经在@Guillaume的回答中解释过了。规避未使用变量警告的一种简单而有用的方法是在状态消息中使用它

message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")

你能提供更多的信息吗?什么脚本、操作系统、cmake版本以及您用于生成的命令行选项?不必在意。有关详细信息,请参阅。@Answeror Good point我最终使用
rm-rf CMakeCache.txt CMakeFiles/
删除了cmake文件。非常感谢您的上述评论!我正在删除cmakcache.txt,但不明白为什么它仍然不起作用。删除CMakeFiles也是必要的。我很晚才看到评论,因此我再次写了它作为回答,希望OP接受它。恭喜@js!我使用rm-rf./build/删除了所有内容,并再次运行cmake命令,但警告仍然存在。关于什么原因的任何建议现在您不需要删除CMakeFiles区域,除非您正在更改工具链。是的,在那次运行时警告消失了,但是:1)它将在下一次运行时重新出现2)删除该区域没有取得任何效果。“我首先执行了git clean--force,但由于这些文件通常位于.gitignore中,因此不会重置生成。”--然后执行同样删除被忽略文件的do
git clean-x--force
message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")