Я пишу приложение на C ++ и создаю сценарий сборки с помощью автоинструментов. После этого конечный пользователь сможет запустить ./configure && make && make install в исходном каталоге. ...

0
Programmer 4 Янв 2021 в 01:30

1 ответ

Лучший ответ

можно ли использовать ту же команду в Windows?

Autoconf создает configure как переносимый (POSIX) сценарий оболочки. Windows не поставляется в стандартной комплектации с оболочкой POSIX или какими-либо стандартными инструментами, на которых основываются сценарии конфигурации и файлы сборки Autotools. Windows также не поставляется в стандартной комплектации с реализацией make, подходящей для использования с make-файлами, созданными Autotools, и, насколько мне известно, Visual Studio также не предоставляет ее.

Вы можете довольно легко собрать и запустить свой проект внутри контейнера WSL в Windows, но это не дает вам собственного исполняемого файла Windows.

Если вы хотите использовать систему сборки Autotools в Windows для создания исполняемых файлов Windows, то лучше всего полагаться на msys2 и mingw-w64. Вместе они могут обеспечить стандартную среду POSIX, изначально работающую в Windows, способную создавать библиотеки и исполняемые файлы Windows с помощью обычных команд. Но обратите внимание, что этот подход означает, что любой, кто хочет создать свой проект в Windows, должен сначала установить эти или аналогичные компоненты.

Если нет, как я могу добиться аналогичного процесса с помощью autotools? Или autotools не может создать сценарий сборки для Windows?

Autotools производит системы сборки, ориентированные на Unix-подобные операционные системы, включая (но не ограничиваясь) Linux и MacOS. Такие системы сборки не подходят для компьютеров с Windows, за исключением добавления довольно большого набора сторонних компонентов, таких как msys2 и mingw-x64.

Если да, то какой инструмент сборки можно использовать для Windows?

CMake - более типичный выбор, если вам нужна совместимость сборки как с Windows, так и с Unix. Обычно это было бы вместо Autotools, а не в дополнение к ним, потому что кто хочет поддерживать несколько независимых систем сборки для одного и того же проекта?

2
John Bollinger 5 Янв 2021 в 02:17