Почему каждый проект C ++ может собрать только один исполняемый файл в Visual Studio? - PullRequest
0 голосов
/ 29 ноября 2010

Является ли эта визуальная студия специфичной или все c ++ проекты ведут себя таким образом?

Почему ??

Ответы [ 4 ]

6 голосов
/ 29 ноября 2010

Если вы хотите создать более одного исполняемого файла, вы можете иметь несколько проектов, определенных в одном файле «решения».

1 голос
/ 29 ноября 2010

Поскольку в Visual Studio термин «проект» определен как сущность (набор исходных файлов), которая испускает один двоичный артефакт сборки (dll / exe / static) lib / ...).

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

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

  • Перекрывающиеся наборы исходных файлов входят в проект (ы), генерируя статические библиотеки (или DLL, если хотите)
  • Уникальный набор исходных файлов для каждого исполняемого файла входит в отдельный проект для каждого исполняемого файла, и каждый исполняемый проект ссылается на проект (ы) static-lib.
1 голос
/ 29 ноября 2010

C ++, как правило, не имеет концепции решения ... Стандарт определяет только то, что происходит в контексте каждой единицы перевода (некоторые из которых относятся к созданию объектов, которые могут правильно связываться). Наиболее распространенный инструмент сборки проекта, используемый для разработки, вероятно, все еще make, что позволяет определять несколько целей.

1 голос
/ 29 ноября 2010

Как бы вы делали разницу между двумя разными основными программами?Довольно сложно узнать, какой источник предназначен для программы 1, а какой - для программы 2. Таким образом, вам нужно 2 разных проекта для двух исполняемых файлов.

Если у вас есть общий исходный код между двумя проектами,у вас может быть библиотека (в другом проекте ^^).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...