Я только начинаю свой путь в программировании на C++ (из многих других языков). Поскольку я изучаю основы, я хотел бы хранить много простых программ на C++ в одном проекте. Каждое из этих простых консольных приложений будет содержать основную функцию.
При создании пустого проекта C++ Visual Studio создает 15 файлов размером 546 КБ. Чтобы сэкономить место на моем компьютере, было бы лучше иметь подпапки в этом отдельном проекте для каждой небольшой программы на C++ для учебных целей.
Можно ли разбить разные консольные программы на отдельные папки в одном проекте Visual Studio C++? Я использую VS 2017 Community Edition.
Редактировать: Я понимаю, что вы можете создать решение VS с несколькими проектами внутри. Причина, по которой я не хочу этого делать, объяснена выше. 546 КБ — это много места, которое можно выделить только для запуска небольшого консольного приложения. Было бы лучше иметь много программ, которые могут работать независимо в рамках одного проекта. Есть ли способ в VS выбрать, какую основную функцию вызывать из всех основных файлов С++?
Просто имейте одну главную функцию и каждую подпрограмму в своей собственной функции. Вызовите подпрограмму в основной функции.
См. редактирование вопроса, почему я не хочу использовать много проектов в одном решении.
Если вы беспокоитесь об использовании диска, вам действительно не следует использовать Visual Studio. Используйте что-то более легкое.
@john, что бы ты порекомендовал?
Я использую Visual Studio, поэтому мне не нужны альтернативы. Многие люди используют Code::Blocks, но не воспринимайте это как личную рекомендацию.





Вы можете использовать отдельную конфигурацию проекта для каждой основной функции, которая есть в вашем проекте (например, создать конфигурации проекта с именами Main1 и Main2). Затем вы можете условно включить файл .cpp, который реализует соответствующую основную функцию, отредактировав файл .vcxproj, например:
<ClCompile Include = "main1.cpp" Condition = "'$(Configuration)' == 'Main1'" />
<ClCompile Include = "main2.cpp" Condition = "'$(Configuration)' == 'Main2'" />
Это будет включать main1.cpp только для конфигурации с именем Main1 и main2.cpp только для конфигурации с именем Main2.
Я бы поставил не рекомендую, потому что Visual Studio 2017 неправильно обновляет обозреватель решений, когда вы переключаете текущую конфигурацию, и вам нужно перезагрузить проект, чтобы увидеть текущие файлы.
Спасибо за минус! Этот ответ решает проблему, но, как я уже сказал, это не рекомендуется из-за проблем с пользовательским интерфейсом, однако я не мог понизить свой голос :)
Просто голова вверх, это не я проголосовал против. Ваш ответ очень ценен. В настоящее время я решил, что, скорее всего, буду использовать что-то более легкое, например инструменты командной строки Visual Studio.
Вместо условного включения используйте свойство Исключено из сборки, чтобы исключить файлы, которые не должны компилироваться как часть текущей конфигурации. Это покажет все файлы в обозревателе решений, но включает только соответствующие файлы, когда сборка фактически выполняется. Это немного назад, но хорошо работает с пользовательским интерфейсом. Дополнительным преимуществом этого является то, что редактор свойств VS может делать это без необходимости открывать и вручную редактировать файл vcproj.
Свойство Исключено из сборки находится в свойствах файла Свойства конфигурации -> Общие. Откройте обозреватель решений (Просмотр-> Обозреватель решений), щелкните файл правой кнопкой мыши, и эта панель должна быть по умолчанию.
У вас должно быть 1 решение, которое может иметь много проектов. Таким образом, если вы выберете для каждого проекта собственную папку, у вас будет макет папки, который вы запрашиваете.