Я опытный разработчик C ++ на новой должности. Мой опыт работы с * nix системами, и я работаю с Visual Studio впервые.
Я нахожу, что я постоянно борюсь с Visual Studio за вещи, которые я считаю тривиальными. Я чувствую, что я не прогнал, как я предполагаемый использовать VS; поэтому я стараюсь делать вещи «как я привык», что приводит меня в неловкое положение: неловкие обходные пути, потерянное время и постоянное разочарование. Мне не нужен учебник VS 101; что мне нужно, так это какое-то руководство по конвертации — «Вот способ VS делать вещи».
Это мой общий вопрос — «Как VS делать вещи?». Это может быть немного расплывчато, поэтому я опишу, что дает мне горе. В идеале я не ищу «Вот конкретный набор шагов, чтобы сделать эту конкретную вещь», а скорее «Вы ошибаетесь; вот термины и концепции, которые вам необходимо понять, чтобы эффективно использовать VS».
В C ++ я привык иметь большой контроль над организацией кода и процессом сборки. Я чувствую, что VS сильно работает против меня здесь:
include/
папка и src/
папка, это теперь серьезная проблема.Я борюсь с этим постоянно. Я могу найти решения для любой конкретной вещи, но для меня ясно, что мне не хватает более широкого понимания того, как Visual Studio как инструмент означало использоваться. Назовите это правильным рабочим процессом или правильной организацией проекта — любые решения или советы могут мне помочь.
(Замечания: как бы мне ни хотелось, «перестать работать с компоновочной цепью Visual Studio» на данный момент не вариант.)
Основное правило: проект приводит к одному выходному файлу [1].
Если вы хотите упаковать строительные блоки в статические библиотеки, создайте проект для каждой из них.
Модульное тестирование отделено от кода, поэтому часто встречается проект «foo» и «foo test» рядом.
Что касается ваших небольших строительных блоков, я использую это правило: если оно достаточно близко связано с тем, чтобы быть помещенным в одну папку, оно достаточно близко связано с тем, чтобы быть помещенным в тот же проект.
И управление кучей небольших проектов невероятно расстраивает. У каждого из них есть миллион настроек и определений (в разных конфигурациях и на разных платформах …), которые очень сложно перенести из одного проекта в другой.
Страницы собственности предназначены для решения этой проблемы. Просто определите страницу свойств, содержащую связанные настройки и определения, и это станет так же просто, как добавить страницу свойств в новый проект.
Поскольку каждый проект может извлекать свои настройки из нескольких страниц свойств, вы можете сгруппировать их в логические группы. В качестве примера: страница свойств «модульного теста» со всеми настройками, связанными с вашей структурой модульного теста.
Чтобы создать страницу свойств в Visual Studio 2015: в меню «Вид» есть пункт «Диспетчер свойств». Вы получаете другое древовидное представление своего решения с проектами, затем с конфигурациями, а затем со всеми страницами свойств для этой комбинации проекта и конфигурации. Контекстное меню для конфигурации имеет возможность создать новую страницу свойств или добавить существующую.
Других решений пока нет …