Что делают «ссылки на проекты» в Visual Studio 2017 с C ++? - PullRequest
0 голосов
/ 22 мая 2018

В Visual Studio ссылки на проекты C # очень просты.Если вы добавите ссылку на проект в проект-потребитель («ProjectA»), указывающий на создание проекта («ProjectB»), проект-потребитель может использовать пространства имен и классы из этого ProjectB.

В C ++ зависимости немного сложнее.У нас есть 3 основные переменные, которые нужны ProjectA от ProjectB для его использования.

  1. Включить каталоги
  2. Каталоги библиотек
  3. Библиотеки для компоновки

Это немного упрощено, но это демонстрирует смысл.

ProjectB знает о своих собственных переменных, поэтому можно подумать, что добавление ссылки из ProjectA в ProjectB каким-то образом заставит Visual Studio передать эти переменные в ProjectA, возможно, путем обновления соответствующих полей в ProjectA.vcxproj.

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

И наоборот, в cmake target_link_libraries(consumer producer) распространяет все (включая / libs / etc) от производителя до потребителя, как и ожидалось.

Таким образом, мне не ясно, для чего предназначены «ссылки на проекты» в Visual Studio для C ++.Кто-нибудь может объяснить?

...