Создание проекта makefile на C++
Makefile — это текстовый файл, содержащий инструкции по компиляции и связыванию (или сборке) набора файлов исходного кода. Программа (часто называемая программой make) считывает файл makefile и вызывает компилятор, компоновщик и, возможно, другие программы для создания исполняемого файла. Программа Майкрософт называется NMAKE.
Если у вас есть существующий проект makefile, у вас есть следующие варианты, если вы хотите изменить, выполнить сборку и отладку в интегрированной среде разработки Visual Studio:
- Создайте в Visual Studio проект makefile, который использует существующий файл makefile для настройки файла VCXPROJ, используемого средой Visual Studio для IntelliSense. (У вас нет всех функций интегрированной среды разработки, которые вы получаете с помощью собственного проекта MSBuild.) См. статью «Создание проекта makefile» ниже.
- Используйте мастер создания нового проекта из существующих файлов кода, чтобы создать собственный проект MSBuild из исходного кода. Исходный файл makefile больше не будет использоваться. Дополнительные сведения см. в разделе Практическое руководство. Создание проекта C++ из существующего кода.
- Visual Studio 2017 и более поздних версий: используйте функцию «Открыть папку« для редактирования и создания проекта makefile как есть без участия в системе MSBuild. Дополнительные сведения см. в статье Проекты «Открыть папку» для C++.
- Visual Studio 2019 и более поздних версий: создайте проект makefile UNIX для Linux.
Создание проекта makefile с использованием шаблона проекта makefile
В Visual Studio 2017 и более поздних версиях шаблон проекта Makefile доступен, если установлена рабочая нагрузка разработки классических приложений на C++.
Используйте мастер, чтобы указать команды и среду, используемые файлом makefile. Затем этот проект можно использовать для сборки кода в Visual Studio.
По умолчанию проект makefile не отображает в обозревателе решений никаких файлов. Проект makefile задает параметры сборки, которые показаны на странице свойств проекта.
Выходной файл, указанный в проекте, не влияет на имя, которое создает скрипт сборки. Он объявляет только намерение. Файл makefile по-прежнему управляет процессом сборки и указывает ее целевые объекты.
Создание проекта makefile в Visual Studio
- В главном меню Visual Studio выберите Файл>Создать>Проект и в поле поиска введите «makefile». Если вы видите несколько шаблонов проекта, выберите варианты в зависимости от целевой платформы.
- Только Windows: на странице «Конфигурация отладки проекта Makefile» Параметры укажите команду, выходные данные, очистку и перестроение для отладочных и розничных сборок. Нажмите кнопку «Далее», если вы хотите указать различные параметры конфигурации выпуска.
- Нажмите кнопку «Готово«, чтобы закрыть диалоговое окно и открыть только что созданный проект в Обозреватель решений.
Создание проекта makefile в Visual Studio 2015 или Visual Studio 2017
- На начальной странице Visual Studio введите строку «makefile» в поле поиска Новый проект. Или же откройте диалоговое окно Новый проект, разверните узел Visual C++>Общие (Visual Studio 2015) или Прочие (Visual Studio 2017) и в области шаблонов выберите Проект Makefile, чтобы открыть мастер проектов.
- На странице Параметры приложения предоставьте сведения о команде, выводе, удалении и перестроении для отладочной и окончательной сборок.
- Нажмите кнопку «Готово«, чтобы закрыть мастер и открыть созданный проект в Обозреватель решений.
На этой странице свойств можно просматривать и изменять свойства проекта. Дополнительные сведения о отображении страницы свойств см. в разделе «Задание компилятора C++» и свойств сборки в Visual Studio.
Мастер проекта makefile
Создав проект makefile, вы можете просматривать и изменять каждый из следующих параметров на странице Nmake свойств проекта.
- Командная строка сборки: указывает командную строку, выполняемую при выборе пользователем команды «Сборка» в меню «Сборка». Отображается в поле «Командная строка для сборки» на странице «Nmake» свойств проекта.
- Выходные данные: указывает имя файла, содержащего выходные данные для командной строки. По умолчанию этот параметр основан на имени проекта. Отображается в поле «Вывод» на странице «Nmake» свойств проекта.
- Очистка команд. Указывает командную строку, выполняемую при нажатии пользователем кнопки «Очистить» в меню «Сборка». Отображается в поле «Командная строка для очистки» на странице «Nmake» свойств проекта.
- Перестроение командной строки: указывает командную строку, выполняемую при выборе пользователем команды «Перестроить» в меню «Сборка». Отображается в поле «Командная строка для перестроения всех файлов» на странице «Nmake» свойств проекта.
Практическое руководство. Использование IntelliSense для проекта Makefile
IntelliSense не работает в проектах makefile, если определенные параметры проекта или компилятора заданы неправильно. Чтобы настроить проекты makefile для правильной работы IntelliSense, выполните указанные ниже действия.
- Откройте диалоговое окно Страницы свойств. Подробнее см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.
- Выберите страницу свойств>конфигурации NMake.
- Измените свойства в IntelliSense соответствующим образом:
- Задайте свойство Определения препроцессора, чтобы определить символы препроцессора в проекте makefile. Дополнительные сведения см. в разделе /D (Определения препроцессора).
- Задайте свойство Путь поиска включаемых файлов, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile. Дополнительные сведения см. в разделе /I (Дополнительные каталоги включения).
- Для проектов, созданных с использованием CL.EXE из командного окна, задайте переменную среды INCLUDE, чтобы указать каталоги, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile.
- Задайте свойство Принудительно включаемые файлы, чтобы указать файлы заголовков, обрабатываемые при сборке проекта makefile. Дополнительные сведения см. в разделе /FI (Имя принудительного включения файла).
- Задайте свойство Путь поиска сборок, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на сборки .NET в проекте. Дополнительные сведения см. в разделе /AI (Указание каталогов метаданных).
- Задайте свойство Обязательно используемые сборки, чтобы указать, какие сборки .NET обрабатываются при сборке проекта makefile. Дополнительные сведения см. в разделе /FU (Имя принудительного #using файла).
- Задайте свойство «Дополнительные параметры», чтобы указать другие параметры компилятора, которые будут использоваться IntelliSense при анализе файлов C++.
- Нажмите кнопку ОК, чтобы закрыть окно страниц свойств.
- Используйте команду Сохранить все, чтобы сохранить измененные параметры проекта.
При следующем открытии проекта makefile в среде разработки Visual Studio запустите команду Очистить решение, а затем — команду Собрать решение для проекта makefile. Технология IntelliSense должна работать в интегрированной среде разработки правильно.
Пошаговое руководство. Работа с проектами и решениями (C++)
В этой статье описано, как создать проект C++ в Visual Studio, добавить код, а затем выполнить сборку и запуск проекта. Проект в этом пошаговом руководстве представляет собой программу, которая отслеживает количество игроков в различных карточных играх.
В Visual Studio для организации работы служат проекты и решения. Решение может содержать несколько проектов, например библиотеку DLL и ссылающийся на нее исполняемый файл. Дополнительные сведения см. в статье Solutions and Projects (Решения и проекты).
Перед началом работы
Для выполнения данного пошагового руководства требуется Visual Studio 2017 или более поздней версии. Если вам нужна копия, вот краткое руководство: Установка поддержки С++ в Visual Studio. Если вы еще не сделали этого, выполните приведенные ниже шаги после установки в рамках руководства «Hello, World», чтобы убедиться в правильности установки и работы компонентов C++.
Полезно владеть основами языка C++ и понимать назначение компилятора, компоновщика и отладчика. В руководстве также предполагается, что вы знакомы с Windows и умеете использовать меню и диалоговые окна.
Создание проекта
Чтобы создать проект, сначала выберите шаблон типа проекта. Для каждого типа проекта среда Visual Studio задает параметры компилятора и — в зависимости от типа — создает начальный код, который позже можно изменить. Следующие действия зависят от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.
Создание проекта в Visual Studio
- В главном меню выберите Файл >Создать >Проект, чтобы открыть диалоговое окно Создание проекта.
- В верхней части диалогового окна задайте для параметра Язык значение C++, для параметра Платформа значение Windows, а для Типа проекта — Консоль.
- В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице введите имя проекта Игра. Вы можете принять расположение по умолчанию в раскрывающемся списке Расположение, ввести другое расположение или нажать кнопку Обзор, чтобы перейти к каталогу, в котором требуется сохранить проект. При создании проекта среда Visual Studio помещает его в решение. По умолчанию имя решения совпадает с именем проекта. Можно изменить имя в поле Имя решения, но для этого примера оставьте имя по умолчанию.
- Нажмите кнопку Создать, чтобы создать проект. Visual Studio создает решение и файлы проекта и открывает редактор для созданного файла исходного кода Game.cpp.
Создание проекта в Visual Studio 2017
- В строке меню выберите Файл>Создать>Проект.
- В левой области диалогового она Новый проект разверните узел Установленные и выберите Visual C++ , если он еще не открыт.
- В списке установленных шаблонов в центральной области выберите Консольное приложение.
- В поле Имя введите имя проекта. Для этого примера введите Game (Игра). Вы можете принять расположение по умолчанию в раскрывающемся списке Расположение, ввести другое расположение или нажать кнопку Обзор, чтобы перейти к каталогу, в котором требуется сохранить проект. При создании проекта среда Visual Studio помещает его в решение. По умолчанию имя решения совпадает с именем проекта. Можно изменить имя в поле Имя решения, но для этого примера оставьте имя по умолчанию.
- Нажмите кнопку ОК, чтобы создать проект. Visual Studio создает решение и файлы проекта и открывает редактор для созданного файла исходного кода Game.cpp.
Создание проекта в Visual Studio 2015
- В строке меню выберите Файл>Создать>Проект.
- В левой области диалогового она Новый проект разверните узел Установленные и выберите Visual C++ , если он еще не открыт.
- В списке установленных шаблонов в центральной области выберите шаблон Консольное приложение Win32.
- В поле Имя введите имя проекта. Для этого примера введите Game (Игра). Вы можете принять расположение по умолчанию в раскрывающемся списке Расположение, ввести другое расположение или нажать кнопку Обзор, чтобы перейти к каталогу, в котором требуется сохранить проект. При создании проекта среда Visual Studio помещает его в решение. По умолчанию имя решения совпадает с именем проекта. Можно изменить имя в поле Имя решения, но для этого примера оставьте имя по умолчанию.
- Нажмите кнопку ОК, чтобы закрыть диалоговое окно Новый проект, и запустите мастер приложений Win32.
- В мастере нажмите кнопку Далее . На странице Параметры приложения в разделе Дополнительные параметрыснимите флажок Предкомпилированный заголовок .
- Нажмите кнопку Готово , чтобы создать проект. Visual Studio создает решение и файлы проекта и открывает редактор для созданного файла исходного кода Game.cpp.
Упорядочение файлов и проектов
Для организации проектов, файлов и других ресурсов в решении, а также для управления ими можно использовать обозреватель решений.
В этой части пошагового руководства описывается добавление класса в проект. При добавлении класса Visual Studio добавляет соответствующие H- и CPP-файлы. Результаты отображаются в обозревателе решений.
Добавление класса в проект
- Если окно Обозреватель решений не отображается в Visual Studio, выберите в строке меню Вид>Обозреватель решений.
- Выберите проект Game в обозревателе решений. В строке меню выберите Проект>Добавить класс.
- В диалоговом окне Добавление класса в поле Имя класса введите значение Cardgame. Не изменяйте имена файлов и параметры по умолчанию. Нажмите кнопку ОК . Visual Studio создает файлы и добавляет их в проект. Вы можете просмотреть их в обозревателе решений. Visual Studio откроет файлы Cardgame.h и Cardgame.cpp в редакторе.
- Внесите в файл Cardgame.h следующие изменения.
- После открывающей скобки определения класса добавьте два частных элемента данных.
int players; static int totalParticipants;
После изменения файл Cardgame.h должен выглядеть примерно так:
#pragma once class Cardgame < int players; static int totalParticipants; public: Cardgame(int players); ~Cardgame(); static int GetParticipants() < return totalParticipants; >>;
Строка #pragma once указывает компилятору включить файл заголовка только один раз. Для получения дополнительной информации см. once . Сведения о других ключевых словах C++ в файле заголовка см. в разделе class , int , static и public .
#include "Cardgame.h" #include using namespace std; int Cardgame::totalParticipants = 0; Cardgame::Cardgame(int players) : players(players) < totalParticipants += players; cout Cardgame::~Cardgame()
Примечание При вводе кода можно использовать автозавершение. Например, при вводе кода с клавиатуры можно ввести pl или tot и нажать клавиши Ctrl+Пробел. Функция автозавершения автоматически вводит players или totalParticipants .
Добавление тестового кода в функцию main
Добавьте в приложение код, тестирующий новые функции.
Добавление тестового кода в проект
- В окне редактора Game.cpp замените существующий код следующим:
// Game.cpp : Defines the entry point for the console application. // #include "Cardgame.h" #include using namespace std; void PlayGames() < Cardgame bridge(4); Cardgame blackjack(8); Cardgame solitaire(1); Cardgame poker(5); >int main()
Сборка и запуск проекта приложения
Затем выполните сборку проекта и запустите приложение.
Построение и запуск проекта
- В строке меню последовательно выберите Сборка>Собрать решение. Выходные данные сборки выводятся в окне Вывод. Если сборка пройдет успешно, выходные данные должны выглядеть следующим образом:
1>------ Build started: Project: Game, Configuration: Debug Win32 ------ 1>pch.cpp 1>Cardgame.cpp 1>Game.cpp 1>Generating Code. 1>Game.vcxproj -> C:\Users\\source\repos\Game\Debug\Game.exe ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
4 players have started a new game. There are now 4 players in total. 8 players have started a new game. There are now 12 players in total. 1 players have started a new game. There are now 13 players in total. 5 players have started a new game. There are now 18 players in total.
Вы успешно выполнили сборку проекта приложения и решения. Продолжайте выполнять пошаговое руководство, чтобы получить дополнительные сведения о сборке проектов кода C++ в Visual Studio.
Как запустить файл .cpp в IDE VS
На курсах предоставили исходные файлы урока: 2 файла с расширением .cpp. Подскажите пожалуйста, как эти файлы добавить в Visual Studio 2019 и скомпилировать для просмотра результатов в консоли? До этого давали уже проекты, созданные в VS и я просто открывал файл проекта "*.sln" и уже внутри переключался между примерами демонстрации.
Отслеживать
задан 1 апр 2021 в 8:36
9 3 3 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
У Вас есть такой способ достигнуть результата:
- Создайте в VS новый проект с типом "Console C++ project" (простейший проект, который представляет из себя файл, в котором написана одна процедура, выводящая в консоль "Hello, world!")
- Теперь у вас есть проект, который открывается в VS. Но там нет того материала, который Вам дали на занятиях.
- Замените содержимое единственного *.cpp файла в проекте на содержимое того файла, который Вам дали на занятиях. Проверьте, что результат компилируется и запускается.
- По Вашему вопросу непонятно, 2 файла которые Вам дали - это две части одного проекта, или это два разных задания? Если это две части одного задания - Вы можете просто добавить в проект еще один *.cpp файл, или поступить даже проще - записать содержимое обеих файлов в один.
Отслеживать
ответ дан 1 апр 2021 в 9:00
11k 1 1 золотой знак 23 23 серебряных знака 46 46 бронзовых знаков
Это 2 разных проекта. Правильно я понимаю. Для добавления второго мне уже в существующем консольном проекте нужно в менеджере добавить ещё один проект. В результате у меня появиться второй пустой проект с выводом фразы "Hello, world!". И уже аналогично нужно заменить текст файла. Верно?
Среды разработки
Для создания программы на C++ нам нужны, как минимум, две вещи: текстовый редактор для набора кода и компилятор для превращения этого кода в приложение. При этом для компиляции необходимо запускать консоль или терминал. Однако есть и более удобный способ - использование различных сред разработки или IDE. Они, как правило, содержит встроенный текстовый редактор, компилятор и позволяют скомпилировать и запустить программу по одному клику мыши, а также имеют еще множество разных вспомогательных возможностей.
Для программирования под Windows наиболее популярной средой разработки, если говорить о C++, является Visual Studio. Данную среду можно найти по ссылке https://visualstudio.microsoft.com/ru/vs/community/.
После загрузки и запуска установщика Visual Studio в нем необходимо отметить пункт Разработка классических приложений на C++ :

Выбрав все необходимые пункты, нажмем ОК для запуска установки. После установки Visual Studio создадим первый проект. Для этого откроем Visual Studio. На стартовом экране среди шаблонов проектов для языка C++ выберем тип Console App , который представляет шаблон консольного приложения:

На следующем экране в поле для имени проекта дадим проекту имя HelloApp и также можно указать расположение проекта. И затем нажмем на Create для создания проекта.

После этого Visual Studio создаст типовой проект консольного приложения на C++.

Справа в окне Solution Explorer отображается структура проекта. В реальности окно Solution Explorer содержит в решение. В данном случае оно называется HelloApp. Решение может содержать несколько проектов. По умолчанию у нас один проект, который имеет то же имя - HelloApp. В проекте есть ряд узлов:
- External Dependencies : отображает файлы, которые используются в файлах исходного кода, но не являются частью проекта
- Header Files : предназначена для хранения заголовочных файлов с расширением .h
- Resource Files : предназначена для хранения файлов ресурсов, например, изображений
- Source Files : хранит файлы с исходным кодом
По умолчанию каталог Source Files содержит один файл с исходным кодом - HelloApp.cpp ( название проекта + расширение файла .cpp - как правило, исходные файлы на C++ имеют расширение .сpp ).
HelloApp.cpp содержит код на языке C++, и именно этот код мы можем увидеть в слева в текстовом редакторе Visual Studio. По умолчанию HelloApp.cpp содержит следующий код:
#include // подключение модуля iostream int main() // определяем функцию main < // начало функции std::cout
Здесь использован весь тот код, который был рассмотрен в начальных темах.
Теперь запустим программу. Для этого в Visual Studio нажмем на сочетание клавиш Ctrl+F5 или выберем пункт меню Debug -> Start Without Debugging :

И в итоге Visual Studio передаст исходный код компилятору, который скомпилирует из кода исполняемый файл exe, который потом будет запущен на выполнение. И мы увидим на запущенной консоли наше сообщение:

После этого на жестком диске в папке решения в каталоге \x64\Debug скомпилированный файл exe, который мы можем запускать независимо от Visual Studio:

В данном случае файл HelloApp.exe как раз и представляет скомпилированный исполняемый файл. И, кроме того, в той же папке автоматически генерируется вспомогательный файл - HelloApp.pdb , который содержит отладочную информацию.
Настройка проекта
Для языка C++ есть несколько стандартов, каждый из которых добавляет некоторые дополнительные возможности. И Visual Studio позволяет задать стандарт, который будет использоваться при компиляции приложения. Для этого перейдем к свойствам проекта:

А в окне свойств перейдем к пункту Configuration Properties -> C/C++ -> Language . На открывшемся окне свойств с помощью опции C++ Language Standard можно задать стандарт языка, который мы хотим использовать: