Как запустить make-файл в Windows?
У меня есть некоторые загруженные демонстрации, которые идут с Makefile.win и Makefile.sgi. Как я могу запустить их в Windows, чтобы скомпилировать демки?
Я должен упомянуть, что я больше похож на Linux, но мне нужно использовать Windows прямо сейчас, поэтому я немного не в курсе.
Если у вас есть Visual Studio, запустите командную строку Visual Studio из меню «Пуск», перейдите в каталог, содержащий Makefile.win и введите следующее:
nmake -f Makefile.win
Вы также можете использовать обычную командную строку и запустить vsvars32.bat (c: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ Common7 \ Tools for VS2008). Это настроит среду для запуска nmake и поиска инструментов компилятора.
Как запустить командную строку visual studio из меню «Пуск»?
Хорошо, я понял это. Но, конечно, он не скомпилируется из-за ошибок. Просто моя удача Спасибо хоть.
Для пользователей с VS2012 командная строка называется «Командная строка разработчика для VS2012». Пуск -> Поиск -> «команда», как я его нашел.
@NSD: Вы можете попробовать другие «make», но такие файлы обычно пишутся на диалекте nmake и при условии, что VS установлен и находится по пути. Вы можете обнаружить, что бесплатной VS Express достаточно.
@MarceloCantos Я новичок в Linux и создании. Что делать, если у меня есть .am и .mk файл. У меня нет файла .win. Я пытаюсь сделать Wget, кстати.
Ознакомьтесь с Cygwin , Unix-подобной средой для Windows
Cygwin хорошо сработал для меня! Мне просто нужно было проверить во время установки некоторые пакеты Devel : «make», а также «gcc», как описано здесь .
Я также рекомендую установить cygwin с использованием chocolatey, поэтому команда get make выглядит так: choco install make —source=cygwin
после того, как я установил с choco, как я могу добавить это к моей командной оболочке? есть путь для добавления?
Если вы установили его с помощью choco, добавьте эту строку (кавычки) в переменную пути в системных переменных «C: \ tools \ cygwin \ bin»
Проверьте GnuWin «s делает , что обеспечивает родной порт для ОС Windows (без необходимости полной среды выполнения , как Cygwin)
Кроме того, добавьте «C: \ Program Files (x86) \ GnuWin32 \ bin» в системную переменную PATH.
Вот мой быстрый и временный способ запустить Makefile
-
скачать сделайте из SourceForge:
Вероятно, лучше добавить bin каталог в PATH переменную окружения. Это сделает make.exe доступным из любого места.
Я думаю, что это сделано по умолчанию — по крайней мере, так было, когда я установил gnuwin32. Конечно, копирование файлов — это плохая практика.
Это не сделано по умолчанию (или нет в моем случае). Добавив его в путь, вы можете запустить make из папки проекта.
Работа как чавканье
Этот вопрос может быть старым, но мое решение, которое является самым простым для любого пользователя Windows, я полагаю, не указано в списке. Шаг 1: Установите менеджер пакетов шоколада для WINDOWS (совместимый с Windows 7+ / Windows Server 2003+) здесь Шаг 2: беги choco install make Шаг 3: Прибыль от ухоженного менеджера пакетов. Make будет добавлен в глобальный путь и работает на всех CLI (powershell, git bash, cmd…) Я не связан с choco, но это просто хорошо.
Если вы устанавливаете Cygwin . Убедитесь, что в программе установки выбрано make. Затем вы можете запустить следующую команду, если у вас есть Makefile.
make -f Makefile https://cygwin.com/install.html
В Visual Studio 2017 мне пришлось добавить эту папку в переменную env пути Windows 10:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64
Там также HostX86
Во-первых, добавьте путь общих инструментов visual studio ( c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools ) в системный путь. Чтобы узнать, как добавить путь в системный путь, посетите этот веб-сайт: http://www.computerhope.com/issues/ch000549.htm . Тебе просто нужно это один раз. После этого, когда вам нужно, откройте командную строку и выполните команду, vsvars32.bat чтобы добавить пути всех необходимых инструментов Visual Studio в системный путь. Затем вы можете позвонить nmake -f makefile.mak PS: Путь к обычным инструментам Visual Studio может отличаться в вашей системе. Пожалуйста, измените его соответственно.
Если это «Makeake-файл NMake», то есть синтаксис и команда совместимы с NMake, он будет работать в Windows. Обычно Makefile.win ( .win суффикс) указывает, что это make-файл, совместимый с Windows NMake. Так что вы можете попробовать nmake -f Makefile.win . Часто предоставляются стандартные файлы Makefile для Linux, которые NMake выглядят многообещающе. Тем не менее, следующая ссылка берет простой Linux Makefile и объясняет некоторые фундаментальные проблемы, с которыми можно столкнуться. Он также предлагает несколько альтернатив для обработки Linux Makefiles в Windows. Makefiles в Windows
Visual Studio и Makefile
Надо было тестово собрать один проект под VS для проверки совместимости кода, в общем все собирается, но выдает следующее:
warning C4530: Использован обработчик исключений C++, но семантика уничтожения объектов не включена. Задайте параметр /EHsc
проект собираться через Makefile что это за беда такая? и собственно чего он по сути хочет? кроме как добавить ключ.
Отслеживать
задан 12 июн 2018 в 7:17
2,308 10 10 серебряных знаков 20 20 бронзовых знаков
Если используются исключения, то проект должен быть собран с ключем /EHsc .
12 июн 2018 в 8:03
. иначе объекты созданные в функциях вызываемых внутри блока try могут не быть корректно уничтожены. Детали
12 июн 2018 в 8:46
Спасибо, то есть для MSVS надо дописывать этим ключом CFLAGS обязательно. @Fat-Zer, оформите в виде ответа, отмечу как правильный.
12 июн 2018 в 9:14
гмм. не люблю я давать ответы на то, в чём я не разбираюсь и не могу проверить. если ни кто другой не оформит, то если не забуду, через пару дней напишу.
12 июн 2018 в 10:41
хорошо, ждем 🙂
12 июн 2018 в 11:42
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Как и говорит предупреждение, компилируется C++ код с обработчиками исключений, но ключ /EH не указан. Если верить документации, то в данном случае объекты с автоматическим временем хранения, созданные в функциях вызываемых внутри блока try могут не уничтожиться корректно, о чём компилятор и сообщает.
Как описано в справке, ключ /EHsc устанавливает режим обработки исключений:
- s указывает, что следует обрабатывать только исключения C++, но не SE (см. далее).
- c указывает, что функции объявленные как extern C не могут выкинуть исключения C++, в связи с этим компилятор вправе применить некоторую оптимизацию накладных расходов.
- Также возможно указание параметра a (вместо sc ), при котором обычный блок catch(. ) помимо обычных исключений C++ будет ловить и структурированные исключения (structured exception), которые обычно отлавливаются внутри непереносимых блоков __try / __except .
Отслеживать
ответ дан 15 июн 2018 в 14:10
23.1k 1 1 золотой знак 18 18 серебряных знаков 37 37 бронзовых знаков
- c++
- visual-studio
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Now announcing: Makefile support in Visual Studio Code!
We are excited to announce a brand-new extension for building and debugging Makefile projects in Visual Studio Code: Makefile Tools (preview)! The extension is in pilot stages, but we’ve curated a list of over 70 popular opensource Makefile projects that work with Makefile Tools. Give it a try and let us know what you think!
Installing the extension

First, install the Makefile Tools extension from the VS Code Marketplace.
Activating the extension

Once the extension is installed, it will activate when it finds a Makefile in your project’s root folder. If your project’s Makefile is not in the root folder, you can use the Makefile Path setting to instruct the extension where to find it. Update Makefile Path by going to File > Preferences > Settings and then selecting makefile under Extensions. After updating Makefile Path, type “makefile” into the Command Palette and run a Makefile Tools command to re-activate the extension.
Configuring your project
By default, the extension will attempt to use a make program that resides within your $PATH to configure the project. If your make.exe is not in your $PATH, update the Make Path setting by going to File > Preferences > Settings and then selecting makefile under Extensions. The Make Path setting tells the extension where to find your make executable.
You can also specify the make Path by selecting the pencil icon to the right of the Make button in the extension’s side panel.
Once your make path is properly set, accept the prompt to allow Makefile Tools to configure IntelliSense.
If you don’t see that notification, or you accidentally dismissed it, you can grant Makefile Tools permission to configure IntelliSense by running “C/C++: Change Configuration Provider” from the Command Palette and selecting Makefile Tools. Now you’re ready to configure your project! If you normally run make from the command line without passing it any additional arguments, you shouldn’t need to do anything else at this point. If you regularly pass additional arguments to make, use the Makefile Tools’ Configurations setting (makefile.configurations in settings.json) to specify those arguments. Makefile.configurations is an array of configuration objects, each with a name and makeArgs property that holds the arguments to pass to make. To help you out, we’ve documented the correct configurations for over 70 popular open-source repositories. For example, to create a configuration for littlekernel, where you need to pass “PROJECT=armemu-test” to make, your settings.json would look something like this:
"makefile.configurations": [ < "name": "littlekernel", "makeArgs": ["PROJECT=armemu-test"] >]
To choose the configuration for a project, select the Makefile Tools icon in the left explorer menu.
Hover over Configuration and select the pencil icon to choose a configuration for your project.
If you didn’t define any configurations in makefile.configurations, the extension will automatically select a default one.
Building targets
After configuring your project, you’re ready to build. Choose a Build target by selecting the pencil icon that appears on hover.
Then choose from the list of targets found in your project’s Makefile.
After setting the Build target, click the Build icon. ![]()
Debugging and running targets
To run/debug your program, use the pencil icon to select a Launch target. A configuration for the selected target will be added to the makefile.launchConfigurations setting. If you need to pass additional arguments to your targets, add the binaryArgs property to the target’s configuration in makefile.launchConfigurations. You can also set MIMode, miDebuggerPath, and stopAtEntry in makefile.launchConfigurations.
Once the Launch target is set, select the Debug icon to start a debugging session.
To run the program without debugging, select the Run in Terminal button. ![]()
Makefile Tools commands

You can find all the Makefile Tools commands by opening the Command Palette and typing “makefile”. For your convenience, there are commands for building clean and building ALL that you can run without changing the Build target.
Makefile Tools settings
- configurations (tells the extension which arguments to pass to make when configuring your project)
- defaultLaunchConfiguration (global debugger settings)
- launchConfigurations (debugger settings for specific launch targets)
- makePath (path to your make executable)
- makefilePath (path to project’s Makefile)
- buildLog (alternative to dry-run)Makefile Tools settings
Other features
Since releasing this extension, we have developed other features to make your life when working with Makefiles easier. To learn more about these, please see this blog post for problem matching and compilation database generation and this blog post for variable expansion.
Known limitations
This is a preview release of Makefile Tools, and although we’ve tested it with over 70 repositories, you may need to do some fiddling to configure your project for the first time. Please feel free to submit a PR to this document, adding your repository and its correct configuration settings, to help anyone who might be trying to build the same project.
Check out our troubleshooting guide for a list of known limitations and work-arounds.
What do you think?
Download the Makefile Tools extension for Visual Studio Code today, give it a try, and let us know what you think. If you run into any issues, or have any suggestions, please report them in the Issues section of our GitHub repository.
We can be reached via the comments below or in email at visualcpp@microsoft.com. You can also find our team on Twitter at @VisualC.
Как пользоваться Makefile в Visual Studio?
Есть проект из трех файлов(2 .c и 1 .h) и Makefile для него. Как мне запустить его с помощью этого Makefile? Работаю в VS.
- Вопрос задан более трёх лет назад
- 3541 просмотр
6 комментариев
Простой 6 комментариев

# @mindtester

# @mindtester

impressive17 @impressive17 Автор вопроса
#, видел это статью, но не до конца понял как это сделать. Запускаю обычно вообще не веред консоль, поэтому в эту тему не погружен. Можешь, пожалуйста, объяснить своими словами? Есть у меня сейчас обычное консольное приложение, что мне дальше сделать?

# @mindtester
impressive17, так суть то в том что make файлы для утилиты make. но Microsoft ее не использует

Владимир Коротенко @firedragon
#, Все зависит от мэйкфайла, в простом случае и nmake справится

# @mindtester
Владимир Коротенко, век живи век учись (с) народное .. а я и не знал про nmake.. напишите ответ
Решения вопроса 0
Ответы на вопрос 1

Владимир Коротенко @firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Command line for visual studio
переходите в папку и выпоняете команду
nmake -f makefile test
Ну или создайте солющен добавьте проект
console application c++
и добавьте эти 3 файла. Ключи для компилятора возьмите из таргетов в makefile
Ответ написан более трёх лет назад
Нравится 1 3 комментария

impressive17 @impressive17 Автор вопроса
Владимир Коротенко , пошел по первому пути, скопировал файл .mak в папку со всеми файлам и попытался написать эту команду. Пишет не хватает сведений для построения сведений test. Всвязи с этим вопрос, а что означает test?

Владимир Коротенко @firedragon
impressive17, test это один из таргетов, для примера
попробуйте
nmake -f makefile all
nmake -f makefile

Владимир Коротенко @firedragon
Microsoft (R) Program Maintenance Utility Version 14.24.28315.0
Copyright (C) Microsoft Corporation. All rights reserved.
Usage: NMAKE @commandfile
NMAKE [options] [/f makefile] [/x stderrfile] [macrodefs] [targets]
/A Build all evaluated targets
/B Build if time stamps are equal
/C Suppress output messages
/D Display build information
/E Override env-var macros
/ERRORREPORT:
/G Display !include filenames
/HELP Display brief usage message
/I Ignore exit codes from commands
/K Build unrelated targets on error
/N Display commands but do not execute
/NOLOGO Suppress copyright message
/P Display NMAKE information
/Q Check time stamps but do not build
/R Ignore predefined rules/macros
/S Suppress executed-commands display
/T Change time stamps but do not build
/U Dump inline files
/Y Disable batch-mode
/? Display brief usage message
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional>