ошибка cmake /config-ix.cmake: 401 (get_host_triple) при попытке собрать LLVM с помощью CMake в Windows

#cmake #llvm

#cmake #llvm

Вопрос:

Я хочу настроить отладчик для кода Visual Studio, поэтому я попытался создать среду LLVM, чтобы иметь LLDB на моем компьютере. Но сборка завершается ошибкой со следующим выводом:

 CMake Warning at cmake/modules/GetHostTriple.cmake:28 (message):
  unable to determine host target triple
Call Stack (most recent call first):
  cmake/config-ix.cmake:401 (get_host_triple)
  CMakeLists.txt:670 (include)
 
 
CMake Error at cmake/config-ix.cmake:409 (string):
  string sub-command REGEX, mode MATCH needs at least 5 arguments total to
  command.
Call Stack (most recent call first):
  CMakeLists.txt:670 (include)
 
CMake Error at cmake/config-ix.cmake:453 (message):
  Unknown architecture host
Call Stack (most recent call first):
  CMakeLists.txt:670 (include)
 

Я использую clang v11.0.1, CMake v3.18.0-rc4 и Ninja v1.10.2.

Комментарии:

1. Также вижу эту ошибку. Вы нашли решение?

2. @Nate, к сожалению, нет

Ответ №1:

У меня была такая же проблема, и я исправил ее, добавив эту строку вручную в качестве опции сборки:

 -DLLVM_HOST_TRIPLE=x86_64
 

Комментарии:

1. Где вы это добавили?

2.@user162988 При сборке из исходного кода вы можете добавить этот флаг, как и другие параметры, например: cmake -G "Visual Studio 16 2019" -Thost=x64 -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=all -DLLVM_HOST_TRIPLE=x86_64 ../llvm Итак, здесь вы можете использовать Ninja after -G flag в качестве генератора, как задано в вопросе, и вы также можете использовать другие -D флаги для настройки проекта в любом случае, как вам нравится.

3. Это можно сделать в вашем только что созданном build каталоге с помощью окна командной строки, а затем cmake --build . создать все это в соответствии с вашими конфигурациями. Пожалуйста, посмотрите, как собрать llvm подробно, потому что я только что привел пример, который я еще не пробовал, поэтому при сборке может возникнуть много других ошибок, поэтому вам может потребоваться изменить или добавить некоторые флаги. Итак, ответ на ваш вопрос заключается в том, что я добавил этот флаг в свои конфигурации cmake, как в примере, который я привел, и проблема была решена для меня в то время.