【问题标题】:What is this "/string" file CMake is failing on?这个“/string”文件是什么 CMake 失败了?
【发布时间】:2020-08-06 20:28:11
【问题描述】:

使用 Visual Studio Code,运行 CMake 时出现以下奇怪错误:

[main] Building folder: CMake-test 
[main] Configuring folder: CMake-test 
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --no-warn-unused-cli -Dcmake.sourceDirectory:STRING=CMake -Dcmake.generator:STRING=Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -C c:\Devo\CMake-test\string -Hc:/Devo/CMake-test -Bc:/Devo/CMake-test/build -G Ninja
[cmake] Not searching for unused variables given on the command line.
[cmake] loading initial cache file c:\Devo\CMake-test\string
[cmake] CMake Error: Error processing file: C:/Devo/CMake-test/string
[cmake] -- Configuring incomplete, errors occurred!
[cmake] See also "C:/Devo/CMake-test/build/CMakeFiles/CMakeOutput.log".

我的 CMakeLists.txt 看起来像这样...

cmake_minimum_required(VERSION 3.0.0)
project(CMAKE_PROJECT VERSION 0.1.0)

include(CTest)
enable_testing()

add_executable(CMAKE_PROJECT main.cpp)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

main.cpp 只是一个简单的 Hello World...

#include <iostream>

int main(int, char**) {
    std::cout << "Hello, world!\n";
}

我尝试了不同的工具包、不同的构建、不同的生成器、“删除缓存和重新配置”,但仍然没有乐趣。这发生在所有项目中,即使是那些之前没有困难构建的项目。我想不出在此期间我可能会做些什么不同的事情。

【问题讨论】:

  • 你的命令行上有-C c:\Devo\CMake-test\string。这会设置您的初始缓存。你真的需要那个吗?那个文件夹里有东西吗?
  • 我一直在删除那个 "\string" 并且它一直在回来。 squareskittles 的修复工作,

标签: c++ visual-studio-code cmake


【解决方案1】:

cmake 命令中的以下部分看起来很可疑:

-C c:\Devo\CMake-test\string

这会加载一个脚本文件以预填充 CMake 缓存,但可能设置错误。要删除它,您可以执行以下操作:

  1. 打开设置并在搜索栏中搜索“cmake cache”。

  2. CMake: Cache Init 下,点击“在 settings.json 中编辑”。

  3. 默认设置标签应该打开,找到"cmake.cacheInit"条目,并将其更改为null

        "cmake.cacheInit": null,
    

【讨论】:

  • 这行得通,非常感谢!出于某种原因,VSCode 仍然坚持它应该是“字符串”。
猜你喜欢
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 2023-01-03
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多