Почему я делаю Cmake .. и делаю? - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь установить какую-то программу в дистрибутиве Amazon Linux 2 и по какой-то причине мне нужно скомпилировать кучу инструментов из исходного кода.

Это было мое понимание, что я должен сделать:

cd my_source_code
./configure
make
make install

Намерение будет:

  • . / Configure проверит, есть ли у меня все необходимые инструменты
  • make: скомпилирует исходные файлы в двоичные файлы, которые я могузатем используйте
  • make install: поместит указанные двоичные файлы в доступное место

Все эти инструменты просят меня сделать разные вещи, например:

./bootstrap
make
make install

или

./bootstrap.sh
./b2
./b2 install

или

cmake .
make
make install

Полагаю, ./boostrap - это всего лишь сценарий ./configure с другим именем.Это правильно?

Для cmake, почему я должен делать и cmake, и make?Разве они не одинаковы?

Я немного потерял все эти возможности.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

CMake эквивалентно выполнению ./configure, но autoconf и automake объединены в одну программу.Это automake, который генерирует Makefiles.CMake запущен в Windows и может генерировать не только Unix Makefiles, но также Visual Studio проекты и некоторые другие цели.

Make очень низкого уровня и напрямую не поддерживает рекурсивную сборку, проходящую через каталогсостав.CMake и Automake являются генераторами Makefile, которые обеспечивают более высокий уровень абстракции и предоставляют механизм для создания рекурсивной сборки.

./bootstrap в общем, содержит шаги для создания сценария configure, которыйобычно не в git-репо, потому что он генерируется.При создании исходного архива для удобства включается сценарий configure.

0 голосов
/ 06 октября 2018

Да, cmake . является шагом конфигурации и соответствует ./configure от Autotools.В результате выполнения этой команды вы получите все запрошенные вами файлы сборки - Makefile с различными типами, проекты Visual Studio и т. Д.

После этого вам нужно будет их фактически собрать.В случае Makefile s вы запускаете make, а в случае Visual Studio вы открываете его в IDE и нажимаете «Build» (или запускаете msbuild, если вам нужна консоль).

CMake имеет--build флаг для автоматического вызова базовой системы сборки, поэтому вы также можете сделать

# configure
cmake .
# build
cmake --build .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...