компиляция ОСНОВ на MSYS2 с использованием MinGW-w64 - PullRequest
2 голосов
/ 19 марта 2020

Я пытаюсь следовать этим инструкциям , чтобы скомпилировать-установить BASIS (CMake Build System и стандарт реализации программного обеспечения) на MSYS2 с использованием компиляторов MinGW-w64. Однако шаг ccmake .. завершается неудачно:

- bash: команда ccmake: не найдена

Я попытался выполнить поиск пакетов MSYS2 по pacman -Ss ccmake безрезультатно , Поэтому я подумал, что должен использовать командную строку cmake вместо:

cmake -DCMAKE_INSTALL_PREFIX:PATH=~/local -DBUILD_APPLICATIONS:BOOL=ON -DBUILD_EXAMPLE:BOOL=ON ..

, которая не удалась:

CMake Error at src/cmake/modules/ProjectTools.cmake:876 (message):
  CMAKE_INSTALL_PREFIX must be an absolute path!
Call Stack (most recent call first):
  src/cmake/modules/ProjectTools.cmake:2525 (basis_installtree_asserts)
  src/cmake/modules/ProjectTools.cmake:2751 (basis_project_begin)
  CMakeLists.txt:69 (basis_project_impl)

, в качестве обходного пути я изменил ~/local на /home/<userName>/local, что кажется работать. Тем не менее, я не знаю, где находятся MakeFile, потому что при запуске make . я получаю ошибку:

mingw32-make: *** Не указаны цели и не найден make-файл , Стоп.

, учитывая, что у меня есть alias make='mingw32-make в файле ~/.bashrc. Буду признателен, если вы поможете мне узнать, в чем проблема и как я могу ее решить. У меня установлен пакет MSYS2-MinGW-w64 mingw64/mingw-w64-x86_64-cmake. Моя Windows - это версия 1909, а MSYS_NT-10.0-18363 - это моя среда.

PS1. Глядя на вывод CMake, я теперь вижу, что на самом деле есть предупреждение:

CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as

    project(ProjectName)

  near the top of the file, but after cmake_minimum_required().

  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

, что немного нелепо c для этого проекта, но я не уверен, что это причина сбоя компиляции.

PS2. У меня был Установлен пакет mingw64/mingw-w64-x86_64-cmake, в котором нет инструмента ccmake. Но msys/cmake делает. Итак:

  • pacman -R mingw-w64-x86_64-cmake
  • pacman -S msys/cmake

Теперь ccmake доступно.

1 Ответ

1 голос
/ 19 марта 2020

ОК, я думаю, что нашел временное решение, используя компиляторы MSV C:

  • cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/<userName>/local -DBUILD_APPLICATIONS:BOOL=ON -DBUILD_EXAMPLE:BOOL=ON .. -G "Visual Studio 15 2017 Win64"
  • cmake --build . --config release --target install
  • исполняемый файл это ~/local/Bin/basisproject.cmd, который имеет расширение файла bizzare, но, кажется, работает!
...