Как добавить файл в проект visual studio

Обновлено: 04.07.2024

Алгоритм работы при создании C++-проекта в Visual Studio

1. New Project: Создание проекта.

  1. Пункт меню File -> New -> Project (Файл -> Создать -> Проект).
  2. В открывшемся окне в разделе Project Types (Установленные) найти Visual C++.
  3. В разделе Templates (Шаблоны) выбрать Win32 Console Application (Консольное приложение Win32).
  4. Указать имя нового «решения» (Solution Name) и имя проекта (Name).
  5. Сохранить проект на локальном диске в легко доступном месте (например, D:\Projects).
  6. Можно снять галочку Create folder for solution (Создать каталог для решения), чтобы не множить каталоги без необходимости.
  7. В следующем диалоговом окне щелкнуть Далее и затем выбрать Application Settings (Дополнительные параметры) -> Empty Project (Пустой проект). Убрать галочку с пункта Проверки жизненного цикла…

2. Add files: Добавление файлов.
Правый клик на проекте в окне Solution Explorer (Обозреватель решений) — пункт Add (Добавить) — пункт Create New Item (Создать элемент) или Add existing Item (Существующий элемент). Для этого и любого другого проекта понадобится как минимум один файл с точкой входа в программу — функцией main.

3. Exclude files: Исключение файлов.
Сначала удобно создать один проект и добавлять в него по одному файлу с решением каждой отдельной задачи. Однако при этом возникает проблема: в нескольких файлах проекта присутствует функция main, что противоречит правилам C++. Для решения данной проблемы, необходимо «исключать» файлы из проекта (правый клик на файле, Exclude from project (Исключить)). При этом файлы исчезнут из окна проекта, однако сохранятся в каталоге проекта на диске.

По мере того, как программы становятся больше, в целях организации или повторного использования их обычно разделяют на несколько файлов. Одним из преимуществ работы с IDE является то, что они значительно упрощают работу с несколькими файлами. Вы уже знаете, как создавать и компилировать однофайловые проекты. Добавить новые файлы в существующие проекты очень просто.

Лучшая практика

Когда вы добавляете в проект новые файлы исходного кода, давайте им расширение .cpp .

Для пользователей Visual Studio

В Visual Studio кликните правой кнопкой мыши на папке Исходные файлы (Source Files) в окне Обозревателя решений (Solution Explorer) и выберите Добавить (Add) → Создать элемент… (New Item…).

Рисунок 1 Добавление нового файла в проект в Visual Studio

Рисунок 1 – Добавление нового файла в проект в Visual Studio

Убедитесь, что у вас выбран Файл C++ (.cpp). Дайте новому файлу имя, и он будет добавлен в ваш проект.

Рисунок 2 Создание нового файла в проекте в Visual Studio

Рисунок 2 – Создание нового файла в проекте в Visual Studio

Примечание. Если вы создаете новый файл из меню Файл (File), а не из своего проекта в обозревателе решений, новый файл не будет добавлен в ваш проект автоматически. Вам придется добавить его в проект вручную. Для этого кликните правой кнопкой мыши на папке Исходные файлы (Source Files) в окне Обозревателя решений (Solution Explorer) и выберите Добавить (Add) → Существующий элемент (Existing Item), а затем выберите свой файл.

Теперь, когда вы компилируете свою программу, вы должны увидеть, как компилятор перечисляет имя вашего файла при компиляции.

Для пользователей Code::Blocks

В Code::Blocks перейдите в меню File (Файл) и выберите New (Создать) → File… (Файл…).

Рисунок 3 Создание нового файла в Code::Blocks

Рисунок 3 – Создание нового файла в Code::Blocks

В диалоговом окне New from template (Создать из шаблона) выберите C/C++ source (Исходный файл C/C++) и нажмите Go (Перейти).

Рисунок 4 Создание нового исходного файла C/C++ в Code::Blocks

Рисунок 4 – Создание нового исходного файла C/C++ в Code::Blocks

На этом этапе вы можете увидеть или не увидеть приветствие в диалоговом окне мастера создания исходного файла C/C++. Если да, щелкните Next (Далее).

Рисунок 5 Диалоговое окно мастера создания исходного файла C/C++

Рисунок 5 – Диалоговое окно мастера создания исходного файла C/C++

На следующей странице мастера выберите C++ и нажмите Next (Далее).

Рисунок 6 Выбор языка при создании нового исходного файла в Code::Blocks

Рисунок 6 – Выбор языка при создании нового исходного файла в Code::Blocks

Теперь дайте новому файлу имя (не забудьте расширение .cpp ) и выберите все конфигурации сборки. Наконец, выберите Finish (Готово).

Рисунок 7 Указание имени файла и выбор конфигураций сборки

Рисунок 7 – Указание имени файла и выбор конфигураций сборки

Теперь, когда вы будете компилировать свою программу, вы должны увидеть, как компилятор перечисляет имя вашего файла по мере компиляции.

Для пользователей GCC/G++

Из командной строки вы можете создать дополнительный файл самостоятельно, используя свой любимый редактор, и дать ему имя. Когда вы компилируете свою программу, вам нужно будет включить в строку компиляции все соответствующие исходные файлы. Например:

где main.cpp и add.cpp – это имена ваших исходных файлов, а main – имя выходного файла.

Пример с несколькими файлами

В уроке «2.6 – Предварительные объявления и определения» мы рассмотрели программу с одним исходным файлом, которая не компилируется:

Когда компилятор достигает вызова функции add в строке 5 в функции main , он не знает, что такое add , потому что мы определили add только в строке 9! Нашим решением было либо переупорядочить функции (поместив сначала add ), либо использовать для add предварительное объявление.

Теперь посмотрим на аналогичную программу из нескольких исходных файлов:

Ваш компилятор может решить сначала скомпилировать либо add.cpp , либо main.cpp . В любом случае main.cpp не скомпилируется, что приведет к той же ошибке компилятора, что и в предыдущем примере:

Причина точно такая же: когда компилятор достигает строки 5 файла main.cpp , он не знает, что такое идентификатор add .

Помните, что компилятор компилирует каждый файл отдельно. Он не знает о содержимом других исходных файлов и не запоминает что-либо, что он видел из ранее скомпилированных исходных файлов. Таким образом, даже если компилятор, возможно, видел определение функции add ранее (если он сначала скомпилировал add.cpp ), он этого не запомнил.

Эта ограниченная видимость и короткая память являются преднамеренными, чтобы файлы могли иметь функции или переменные, у которых одинаковые имена, но которые не конфликтуют друг с другом. В следующем уроке мы рассмотрим пример такого конфликта.

Наши варианты решения здесь такие же, как и раньше: поместить определение функции add перед функцией main или удовлетворить компилятор предварительным объявлением. В этом случае, поскольку функция add находится в другом файле, вариант изменения порядка определений не подходит.

Лучшее решение здесь – использовать предварительное объявление:

main.cpp (с предварительным объявлением):

add.cpp (остается прежним):

Теперь, когда компилятор компилирует main.cpp , он будет знать, что такое идентификатор add , и будет удовлетворен. Линкер соединит вызов функции add в main.cpp с определением функции add в add.cpp .

Используя этот метод, мы можем предоставить файлам доступ к функциям, которые находятся в другом файле.

Попробуйте скомпилировать add.cpp и main.cpp с предварительным объявлением. Если вы получили ошибку линкера, убедитесь, что вы правильно добавили add.cpp в свой проект или строку компиляции.

Что-то пошло не так!

Есть много вещей, которые могут пойти не так, когда вы в первый раз попытаетесь работать с несколькими файлами. Если вы попробовали приведенный выше пример и столкнулись с ошибкой, проверьте следующее:

1. Если вы получаете ошибку компилятора о том, что add не определена в main , вы, вероятно, забыли предварительное объявление для функции add в main.cpp .

2а. … наиболее вероятная причина в том, что add.cpp неправильно добавлен в ваш проект. При компиляции вы должны увидеть в списке компиляции и main.cpp , и add.cpp . Если вы видите только main.cpp , значит add.cpp определенно не компилируется. Если вы используете Visual Studio или Code::Blocks, вы должны увидеть add.cpp в списке в обозревателе решений / на панели проекта в левой части IDE. Если его не видно, кликните на проекте правой кнопкой мыши и добавьте этот файл, а затем попробуйте скомпилировать снова. Если вы компилируете из командной строки, не забудьте включить main.cpp и add.cpp в свою команду компиляции.

2b. … возможно, вы добавили add.cpp не в тот проект.

2c. … возможно, что файл не компилируется или не линкуется. Проверьте свойства файла и убедитесь, что файл настроен для компиляции/линковки. В Code::Blocks компиляция и линковка – это отдельные флажки, которые следует установить. В Visual Studio есть параметр «исключить из сборки» (exclude from build), для которого следует установить значение «нет» или оставить пустым.

Резюме

Когда компилятор компилирует программу из нескольких исходных файлов, он может компилировать эти файлы в любом порядке. Кроме того, он компилирует каждый файл отдельно, не зная, что находится в других файлах.

Мы будем много работать с несколькими файлами, как только перейдем к объектно-ориентированному программированию, поэтому сейчас самое подходящее время, чтобы убедиться, что вы понимаете, как добавлять и компилировать проекты с несколькими файлами.

Напоминание: всякий раз, когда вы создаете новый исходный файл (.cpp), вам нужно будет добавить его в свой проект, чтобы он компилировался.

Для добавления новых файлов в проект новых файлов в проект необходимо вызвать контекстное меню над именем проекта в «Проводнике решений» (Solution Explorer) (см. рисунок 13.1) и далее выбрать раскрывающийся пункт «Добавить» (Add). В нем нас на текущий момент будут интересовать два подпункта “New Item …” (Новый объект) и “Exiting Item …” (Существующий объект). Первый создает новый файл, одного из предложенных типов, а второй добавляет к проекту уже существующий. Диалоговое окно с вариантами доступных для создания файлов представлено на рисунке 13.2.


Рисунок 13.1 – Добавление нового файла в проект


Рисунок 13.2 – Диалоговое окно выбора типа добавляемого файла


Рисунок 13.3 – Результат добавления новых файлов в проект

Пример работы с многофайловыми проектами

Разберем работу с многофайловыми проектами на примере задачи из предыдущей лабораторной работы.

Пример 13.1 Нахождение расстояния между точками

Задание. Написать программу, которая находит расстояние между двумя точками. Координаты могут задаваться как в декартовой, так и в полярной системе координат. Предусмотреть функции перевода из декартовой системы в полярную и обратно.

Алгоритм решения:

- Задать или ввести с клавиатуры координаты точек.

- Для пары точек определить расстояние по одной из формул:

o для декартовой системы:

o для полярной системы:

- Вывести результаты на экран.

Определение требуемых типов данных.

Для удобства хранения информации о координате точки в одной из систем координат удобно воспользоваться структурами, хранящими пары координат одной и той же точки. Для простоты назовем их cartesian для декартовой, и polar для полярной системы координат.

Разбиение на подзадачи.

В результате описанного алгоритма и задания определяем спецификации нужных нам функций. Для удобства использования воспользуемся перегрузкой:

1. double len(cartesian a, cartesian b) – принимает две координаты в декартовой системе и возвращает длину.

2. double len(polar a, polar b) – принимает две координаты в полярной системе и возвращает длину.

3. double len(cartesian a, polar b) – принимает первую координату в декартовой системе, а вторую в полярной, и возвращает длину.

4. double len(polar a, cartesian b) – принимает первую координату в полярной системе, а вторую в декартовой, и возвращает длину.

5. polar cartesian_to_polar(cartesian x) – переводит координаты точки из в декартовой системы в полярную.

6. cartesian polar_to_cartesian(polar x) – переводит координаты точки из в полярной системы в декартову.

Я чувствую себя глупо спрашивать это, потому что кажется, что это должно быть так просто, однако я не смог обнаружить ответа на этот вопрос.

Итак, как вы добавляете существующие каталоги и файлы в Visual Studio 2008?

перетащите файлы / папки из Проводника Windows в Обозреватель решений. Это добавит их всех. Обратите внимание, это не сработает, если Visual Studio в режиме администратора, так как Windows Explorer-это процесс пользовательского режима.

включить "Show All Files" для конкретного проекта (вам может потребоваться нажать "Обновить", чтобы увидеть их)**.

папки/файлы, которые не являются частью вашего проекта appear slightly "lighter" в дереве проекта.

Right click папки/файлы, которые вы хотите добавить, и нажмите кнопку "Include In Project" . Он будет рекурсивно добавлять папки / файлы в проект.

* * эти кнопки расположены на панели инструментов mini Solution Explorer.

* * убедитесь, что вы не находитесь в режиме отладки

В Обозревателе Решений:

  1. нажмите Показать все файлы (второй значок слева вверху обозревателя решений)
  2. найдите папку, которую вы хотите добавить
  3. щелкните правой кнопкой мыши и выберите "Включить в проект"

Я использую это для установки дополнений, таких как HTML-редакторы и сторонние браузеры файлов.

Я просто хочу отметить, что оба решения предложили выше
- Перетащите из Проводника Windows
- Показать все файлы, а затем включить в проект.
Не делайте того, о чем спрашивают:
Включить в проект при сохранении структуры каталогов.
По крайней мере, не в моем случае (C++/CLI Project Visual Studio 2013 в Windows 7).
В Visual Studio после возвращения в обычное представление (не показывать все файлы) все добавленные файлы перечислены в высший уровень проекта.
Да, на диске они все еще находятся там, где они были, но в обозревателе решений они свободны.

Я не нашел никакого способа обойти это, кроме воссоздания структуры каталогов в обозревателе решений, а затем добавления существующих элементов в нужное место.

Я не сразу понял это, основываясь на этих описаниях, но вот что я, наконец, наткнулся:

  1. включить "показать все файлы" - на панели инструментов обозревателя решений есть значок
  2. используя Проводник Windows (не проводник решений), переместите файлы в структуру каталогов, где они должны находиться
  3. нажмите "Обновить" также на панели инструментов обозревателя решений
  4. файлы, которые вы переместили должны быть видны "ghosted" в древовидной структуре обозревателя решений, где вы их разместили
  5. щелкните правой кнопкой мыши на ваших призрачных файлов или папок и нажмите кнопку "Включить в проект". Все содержимое папки будет включено

В дополнение к ответам. Ниже приведен значок для'Показать Все Файлы', как раз для легкой ссылки.

enter image description here

это немного поздно, но вы можете изменить свой проект XML, чтобы добавить существующие подпапки и структуры автоматически в свой проект, как "node_modules" из NPM:

Это для пожилых в MSBuild / визуальный студийные версии

для текущих версий MSBuild / Visual Studio:

просто поместите его в узлы xml:

в этом случае просто измените $(MSBuildProjectDirectory)\node_modules на имя вашей папки

enter image description here

нажмите выше в красном круге, ваша папка появится в обозревателе решений

щелкните правой кнопкой мыши на папке - > включить в проект.

вам нужно поместить структуру каталогов в каталог проекта. А затем нажмите значок "показать все файлы"в верхней части панели инструментов обозревателя решений. После этого будет показан добавленный каталог. Затем вам нужно будет выбрать этот каталог, щелкнуть правой кнопкой мыши и выбрать "включить в проект"."

наконец, Visual Studio 2017 позволяет пользователю импортировать весь каталог одним щелчком мыши. VS 2017 имеет новую функциональность "Открыть Папку", что позволяет открыть всю папку, даже без необходимости сохранять ее в качестве решения. Исходный код можно импортировать с помощью следующих методов.

  1. Файл - > Открыть - > папка (ctrl + shift + o)
  2. команду devenv.ехе

Он даже поддерживает построение и отладку cmake проекты.

вот что я делаю:

  1. щелкните правой кнопкой мыши на решении - > добавить - > существующий веб-сайт.
  2. выберите папку, в которой находится ваш сайт. Только корневая папка сайта.

затем все будет добавлено в ваше решение из папок в файлы и файлы внутри этих папок.

Что сработало для меня, так это перетащить папку в VS, затем щелкните правой кнопкой мыши папку и выберите "Открыть папку в Проводнике". Затем выберите все и перетащите их в папку в VS.

аккуратный трюк, который я обнаружил, заключается в том, что если вы идете в "Добавить существующий. ", вы можете перетащить папку из открытого диалога в свое решение. У меня есть VS для автоматического открытия в режиме администратора, поэтому это было хорошим обходным путем для меня, поскольку я не хотел отменять это, чтобы заставить это работать.

в Windows 7 Вы можете сделать следующее:

щелкните правой кнопкой мыши на своем проекте и выберите "Добавить->существующий элемент". В появившемся диалоговом окне перейдите к корню каталога, который вы хотите добавить. В правом верхнем углу у вас есть окно поиска. Тип *.cs или *.cpp , независимо от типа файлов, которые вы хотите добавить. После завершения поиска выберите все файлы, нажмите кнопку Добавить и подождите некоторое время.

самый чистый способ, который я нашел, чтобы сделать это-создать новый проект библиотеки классов в целевую папку, и перенаправлять все его сборки в другом месте. Он все равно оставляет .файл csproj находится в этой папке, но позволяет увидеть его в Visual Studio и выбрать файлы для включения в проект.

раздражает, что Visual Studio не поддерживает Это изначально,но CMake может генерировать проект Visual Studio как работу.

кроме этого, просто используйте Qt Creator. Затем он может экспортировать проект VS.

Читайте также: