Что это за "/ строковый" файл CMake? - PullRequest
1 голос
/ 06 августа 2020

Используя код Visual Studio, я получаю следующую странную ошибку при запуске 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)

Основной файл. cpp - это просто Hello World ...

#include <iostream>

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

Я пробовал разные комплекты, разные сборки, разные генераторы, «Удалить кеш и перенастроить», и все равно без радости. Это происходит во всех проектах, даже в тех, которые раньше создавались без проблем. Не могу придумать, что бы я сделал по-другому за это время.

1 Ответ

0 голосов
/ 06 августа 2020

Следующий раздел в вашей команде cmake выглядит подозрительно:

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

Это загружает файл сценария для предварительного заполнения кэша CMake, но, возможно, был установлен ошибочно. Чтобы удалить его, вы можете сделать следующее:

  1. Откройте Настройки и найдите « cmake cache » в строке поиска.

  2. В разделе CMake: Cache Init нажмите « Изменить в настройках. json».

  3. Должна открыться вкладка Параметры по умолчанию , найти запись "cmake.cacheInit" и изменить ее на null:

        "cmake.cacheInit": null,
    
...