Как запустить makefile в windows
Как скомпилировать исходник Gromacs на Windows
Приветствую участников форума! :) Я здесь новичек, поэтому прошу строго не судить. Суть моей.
Как скомпилировать Lammps под windows?
Добрый день! Очень нужна помощь в установке и запуске программы молекулярной динамики LAMMPS под.
Как скомпилировать код из под Windows на mac и linux?
Как скомпилировать код из под windows на mac и linux?
Make, makefile, simple makefile, hello_world
Всем привет! Разбираюсь с мэйк-файлами. Проблема следующая: не понятен сам принцип обработки.
Chizel, ну у Вас же компилятор MinGW(порт GCC под винду)?
С ним идет и утилита mingw32-make
P.S. а причем тут английский?
Chizel, ну у Вас же компилятор MinGW(порт GCC под винду)? Нет, у меня не такой компилятор. Утилита make есть, пробовал через нее запускать, получаю:Chizel, ну так ошибка в makefile, его и нужно смотреть. На всякий случай. make - это утилита, которая на вход по умолчанию читает файл с именем Makefile. В файле Makefile на птичьем языке описываются некоторые правила запуска всяких программ (как правило правила сборки компилятором исходников)
Та же проблема.Не могу запустить makefile
он лежит по пути
\micro-ecc\nrf52_keil\armgcc>make
и ответ:
"make" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Чтобы компиляция из командной строки (в том числе и с помощью утилиты make) проходила успешно и не зависела от пробелов в пути к файлу, нужно записать путь к каталогу, где находится эта утилита в переменную среды Path. Тогда в командной строке можно будет вызывать и компилятор g++ и утилиту mingw32-make без указаний пути к ним. Это проверено и работает. Не прописывать же все пути ко всем библиотекам в PATH. Не прописывать же все пути ко всем библиотекам в PATH.
Необходимости прописывать библиотеки в PATH нет. Там достаточно указать путь к исполняемым файлам (компилятору и утилите make). Как правило этот путь может выглядеть так: C:\MinGW\bin. Если компилятор устанавливался в составе какой либо среды разработки (например CodeBlocks), то он будет размещен в Program Files(x86)\CodeBlocks\MinGW\bin. Варианты бывают разные, все зависит от установки. При этом, стандартные библиотеки вполне доступны, а какие-то сторонние (или свои собственные) можно подключить (сделать доступными компилятору) в самом make файле. Ну, или передать в качестве параметра компилятору в командной строке. По мне, так в makefail лучше (написал один раз и не паришься).
Добавлено через 10 минут
Вот пример make файла (не знаю какой тег выбрать для размещения - выбрал "BASH", думаю пойдет)
Статья будет интересная прежде всего изучающим программирование на C/C++ в UNIX-подобных системах от самых корней, без использования IDE.
Компилировать проект ручками — занятие весьма утомительное, особенно когда исходных файлов становится больше одного, и для каждого из них надо каждый раз набивать команды компиляции и линковки. Но не все так плохо. Сейчас мы будем учиться создавать и использовать Мейкфайлы. Makefile — это набор инструкций для программы make, которая помогает собирать программный проект буквально в одно касание.
Для практики понадобится создать микроскопический проект а-ля Hello World из четырех файлов в одном каталоге:
Все скопом можно скачать отсюда
Автор использовал язык C++, знать который совсем не обязательно, и компилятор g++ из gcc. Любой другой компилятор скорее всего тоже подойдет. Файлы слегка подправлены, чтобы собирались gcc 4.7.1
Программа make
Если запустить
make
то программа попытается найти файл с именем по умолчание Makefile в текущем каталоге и выполнить инструкции из него. Если в текущем каталоге есть несколько мейкфайлов, то можно указать на нужный вот таким образом:
make -f MyMakefile
Есть еще множество других параметров, нам пока не нужных. О них можно узнать в ман-странице.
Процесс сборки
Компилятор берет файлы с исходным кодом и получает из них объектные файлы. Затем линковщик берет объектные файлы и получает из них исполняемый файл. Сборка = компиляция + линковка.
Компиляция руками
Самый простой способ собрать программу:
g++ main.cpp hello.cpp factorial.cpp -o hello
Каждый раз набирать такое неудобно, поэтому будем автоматизировать.
Самый простой Мейкфайл
В нем должны быть такие части:
Для нашего примера мейкфайл будет выглядеть так:
Обратите внимание, что строка с командой должна начинаться с табуляции! Сохраните это под именем Makefile-1 в каталоге с проектом и запустите сборку командой make -f Makefile-1
В первом примере цель называется all . Это цель по умолчанию для мейкфайла, которая будет выполняться, если никакая другая цель не указана явно. Также у этой цели в этом примере нет никаких зависимостей, так что make сразу приступает к выполнению нужной команды. А команда в свою очередь запускает компилятор.
Использование зависимостей
Использовать несколько целей в одном мейкфайле полезно для больших проектов. Это связано с тем, что при изменении одного файла не понадобится пересобирать весь проект, а можно будет обойтись пересборкой только измененной части. Пример:
Это надо сохранить под именем Makefile-2 все в том же каталоге
Теперь у цели all есть только зависимость, но нет команды. В этом случае make при вызове последовательно выполнит все указанные в файле зависимости этой цели.
Еще добавилась новая цель clean . Она традиционно используется для быстрой очистки всех результатов сборки проекта. Очистка запускается так: make -f Makefile-2 clean
Использование переменных и комментариев
Переменные широко используются в мейкфайлах. Например, это удобный способ учесть возможность того, что проект будут собирать другим компилятором или с другими опциями.
Это Makefile-3
Переменные — очень удобная штука. Для их использования надо просто присвоить им значение до момента их использования. После этого можно подставлять их значение в нужное место вот таким способом: $(VAR)
Что делать дальше
После этого краткого инструктажа уже можно пробовать создавать простые мейкфайлы самостоятельно. Дальше надо читать серьезные учебники и руководства. Как финальный аккорд можно попробовать самостоятельно разобрать и осознать такой универсальный мейкфайл, который можно в два касания адаптировать под практически любой проект:
Мне необходимо запустить makefile для сборки программы, написанной на С (ее текст представлен на скрине). Я совсем не разбираюсь в вопросах отладки, компиляции, программирования в целом, мне просто нужна итоговая программка для своих расчетов. Я пыталась запустить makefile, читая аналогичные темы на форумах. Скачивала и устанавливала Mingw32, msys, прописывала пути в PATH, но каждый раз у меня ошибки. Запуск через командную строку выдает ошибку "make не является внутренней или внешней командой", либо ошибки с разными кодами, которые мне также не удалось устранить. Если кто-то сможет дать мне относительно подробную инструкцию, откуда и что можно скачать, чтоб все заработало, буду очень благодарна. Система x64, винда 10. Upd: добавила скрин кода makefile, и программки, которые он должен собрать, как я понимаю.
Начнём с того, что Makefile - это инструкция для программы make. На вашем компе эта программа не установлена. О чём Вам недвусмысленно говорит система: "make не является внутренней или внешней командой". Вторая проблема в том, что "мне просто нужна итоговая программка" - для какой ОС Вы рассчитываете получит программу? Ведь Makefile - это (скорее всего) инструкция для создания Linux программы. И даже получив её, Вы сможете запустить эту программу только под Linux. Это действительно то, что Вы хотите? Подозреваю - нет.
А что бы эксперты могли сказать Вам, как собрать эту программу под виндой, надо опубликовать исходный текст, но не самой программы, а Makefile. Откройте его в блокноте и откопипастите сюда.
Если программа чисто вычислительная, то есть достаточно высокая вероятность собрать ее и под windows. Раз у Вас не получилось с MSYS (мне этот вариант больше нравится), то попробуйте установить Cygwin. Это среда, почти полностью эмулирующая окружение Linux. У нее есть свой интерпретатор bash, есть пакетный менеджер (впрочем, у MSYS2 тоже это есть). После установки минимальной версии cygwin нужно установить этим пакетным менеджером все необходимые пакеты (вплоть до графической среды x11, если надо) и потом можно собирать Вашу программу. Запускать Вам ее, также, проще будет в этой среде.
Dhoom | медленный мо | Болливуд
У меня есть несколько демо, которые я скачал, и они идут с Makefile.win и Makefile.sgi. Как я могу запустить их в Windows для компиляции демонстраций?
- 3 Я должен упомянуть, что я больше люблю Linux, но мне нужно использовать Windows прямо сейчас, поэтому я немного невежественен.
- 2 Здесь дано очень четкое руководство
Если у вас Visual Studio, запустите командную строку Visual Studio из меню Пуск, перейдите в каталог, содержащий Makefile.win и введите это:
Вы также можете использовать обычную командную строку и запустить vsvars32.bat (c: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ Common7 \ Tools for VS2008). Это настроит среду для запуска nmake и поиска инструментов компилятора.
Ознакомьтесь с cygwin, Unix-подобной средой для Windows
- 7 cygwin у меня сработал !. Мне просто нужно было проверить во время установки некоторые пакеты в Devel : make, а также gcc, как описано здесь.
- 10 Я также рекомендую установить cygwin с помощью chocolatey, поэтому команда для получения make это: choco install make --source=cygwin
- после установки с помощью choco, как я могу добавить его в свою командную оболочку? есть путь, который нужно добавить?
- 4 Если вы установили его с помощью choco, добавьте эту строку (в кавычках) к вашей переменной пути в системных переменных "C: \ tools \ cygwin \ bin"
Ознакомьтесь с маркой GnuWin (для окон), который предоставляет собственный порт для Windows (без необходимости полной среды выполнения, такой как Cygwin)
Если у вас есть winget, вы можете установить его через CLI следующим образом:
Также не забудьте добавить путь установки в вашу систему. PATH :
- 9 Кроме того, добавьте "C: \ Program Files (x86) \ GnuWin32 \ bin" в PATH вашей системы.
- Вы также можете подумать об изменении каталога установки, чтобы избежать пробелов и скобок, поскольку они могут вызвать проблемы с запуском CLI.
Вы можете установить GNU make с шоколадным, хорошо поддерживаемым менеджером пакетов, который добавит make к глобальному пути и запускается на всех интерфейсах командной строки (powershell, git bash, cmd и т. д.), что позволяет сэкономить массу времени как при обслуживании, так и при первоначальной настройке для запуска make.
Установите шоколадный менеджер пакетов для Windows
совместим с Windows 7+ / Windows Server 2003+
Бежать choco install make
Я не связан с choco, но очень рекомендую его, пока он меня никогда не подводил, и у меня есть талант непреднамеренно взламывать программы.
Вот мой быстрый и временный способ запустить Makefile
- скачать сделать из SourceForge: gnuwin32
- установить это
- перейти в папку установки
C: \ Program Files (x86) \ GnuWin32 \ bin
- скопировать все файлы в мусорном ведре в папка, содержащая Makefile
- откройте cmd(вы можете сделать это с щелкните правой кнопкой мыши со сдвигом) в папке, содержащей Makefile, и запустите
Кроме того, вы можете добавить аргументы после команды, например
- 12 Наверное, лучше добавить bin каталог для PATH переменная окружения. Это сделает make.exe доступно из любого места.
- 1 Я думаю, что это делается по умолчанию - по крайней мере, так было, когда я установил gnuwin32. Конечно, копирование файлов в любом случае - плохая практика.
- 1 По умолчанию (или не в моем случае) это не делается. Добавив его в путь, вы можете запустить сделать из папки проекта.
- Работай как чемпион
Если вы установите Cygwin. Обязательно выберите make в установщике. Затем вы можете запустить следующую команду, если у вас есть Makefile.
В Visual Studio 2017 мне пришлось добавить эту папку в переменную env пути в Windows 10:
Также есть HostX86
Часто предоставляются стандартные файлы Makefile Linux и NMake выглядит многообещающе. Однако следующая ссылка берет простой файл Makefile Linux и объясняет некоторые фундаментальные проблемы, с которыми можно столкнуться. Он также предлагает несколько альтернатив работе с Make-файлами Linux в Windows.
Make-файлы в Windows
После этого, когда вам нужно, откройте командную строку и выполните vsvars32.bat чтобы добавить пути ко всем необходимым инструментам Visual Studio в системный путь.
Тогда вы можете позвонить nmake -f makefile.mak
PS: Путь к общим инструментам Visual Studio может отличаться в вашей системе. Пожалуйста, измените его соответствующим образом.
Я пробовал с cygwin и gnuwin, и у меня ничего не получилось, я думаю, потому что make-файл использовал в основном конкретный код Linux.
Что сработало, так это использовать Ubuntu Bash для Windows 10. Это Marvel, если вы пришли из MAC, как и мой случай:
Дополнительно:
Я использую набор инструментов MinGW, который предоставляет mingw32-make инструмент сборки, если он у вас есть PATH системные переменные, в командной строке Windows просто перейдите в каталог, содержащий файлы, и введите эту команду:
Я полагаю, вы добавили mingw32/bin добавляется в переменные среды, иначе добавьте его, и я предполагаю, что это компилятор gcc, и у вас есть установщик mingw.
Первый шаг: скачать mingw32-make.exe из установщика mingw или проверьте mingw/bin папка сначала ли mingw32-make.exe существует или нет, кроме установки, переименуйте его в make.exe .
После переименования в make.exe , просто зайдите и запустите эту команду в каталоге, где makefile расположен. Вместо переименования вы можете напрямую запустить его как mingw32-make .
В конце концов, команда - это просто исполняемый файл или программное обеспечение, мы используем его имя для выполнения программного обеспечения, мы называем его командой.
Поэтому, если вы используете Vscode и Mingw, сначала убедитесь, что bin папка mingw включен в путь к среде, и рекомендуется изменить mingw32-make.exe к make чтобы облегчить задачу, а затем создать makefile и включите в него этот код.
Затем сохраните файл makefile и откройте Vscode Code терминал и написать make . Тогда makefile будет запущен.
Читайте также: