@aLL_inZi

Следую туториалу по тому как использовать vcpkg в проектах CMake, но выдается ошибка, может я что-то не сделала?

Я пока не мастер, поэтому не обессудьте, могу делать глупые ошибки.
Я решила разобраться с тем, как пользоваться библиотеками скачанными vcpkg, в проектах CMake. Редактор использую VS Code. Выбрала эту статью из документации https://learn.microsoft.com/ru-ru/vcpkg/users/buil....
Все шло хорошо, пока не стала писать команду cmake --preset=default (из пункта о сборке и запуске проекта). Вот ошибка:
6554c91fca357795004275.png

Объясните, люди добрые, может надо было еще что-то сделать?

UPD
CMakeLists теперь выглядит так:
cmake_minimum_required(VERSION 3.10)

project(HelloWorld)

include(FetchContent)

FetchContent_Declare(
  fmt
  GIT_REPOSITORY https://github.com/fmtlib/fmt.git
  GIT_TAG master
)
FetchContent_MakeAvailable(fmt)

add_executable(HelloWorld helloworld.cpp)

target_link_libraries(HelloWorld PRIVATE fmt::fmt)

set(CMAKE_GENERATOR "MinGW Makefiles" CACHE STRING "CMake generator" FORCE)
set(CMAKE_CXX_COMPILER "C:/msys64/mingw64/bin/g++")
set(CMAKE_C_COMPILER "C:/msys64/mingw64/bin/gcc")

Файлы генерирую командой (в каталоге build):
cmake -G "MinGW Makefiles" D:\Users\aLL_in\projects\helloworld_2

Пропускает проверку работы компиляторов (не знаю, норм или не норм)
6558907bbf9f2558681509.png

когда хочу собрать командой
cmake --build D:\Users\aLL_in\projects\helloworld_2\build


Вот что происходит:
6558913aaf1f4968910546.png
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Судя по ошибке, cmake пытается использовать генератор "NMake Makefiles". nmake - это такой куцый вариант make от микрософт, идет в составе MSVS. Но MSVS у вас, похоже, не установлен, вот cmake и не может его найти.
Обычно генератор задается опцией -G при вызове cmake.
Список поддерживаемых генераторов смотрите: cmake --help
Но это не значит, что все они будут работать в вашей конфигурации, т.к. все они требуют дополнительного ПО.

Под виндой, обычно ставят MSVS или Build Tools и выбирают соответствующий генератор в cmake (или возможно cmake находит сам подходящий генератор).
Альтернативные варианты:
msys2+mingw - генератор MSYS Makefiles или MinGW Makefiles
msys2+mingw+ninja - генератор Ninja
mingw можно заменить на clang.

Смысл в том, что VS Code - это грубо говоря текстовый редактор адаптированный для написания программ.
cmake - это система сборки.
Но ничего из этого самостоятельно компилировать программы не умеет - они используют какой-то компилятор, который надо установить в систему. Какой именно - выбирать вам.
MSVS, в отличие от VS Code, это IDE со встроенным компилятором - и там уже полный фарш, думать как собрать программу не надо.
Но разобраться в этой кухне стоит, раз уж вы изучаете С/С++.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы