В Visual Studio ссылки на проекты C # очень просты.Если вы добавите ссылку на проект в проект-потребитель («ProjectA»), указывающий на создание проекта («ProjectB»), проект-потребитель может использовать пространства имен и классы из этого ProjectB.
В C ++ зависимости немного сложнее.У нас есть 3 основные переменные, которые нужны ProjectA от ProjectB для его использования.
- Включить каталоги
- Каталоги библиотек
- Библиотеки для компоновки
Это немного упрощено, но это демонстрирует смысл.
ProjectB знает о своих собственных переменных, поэтому можно подумать, что добавление ссылки из ProjectA в ProjectB каким-то образом заставит Visual Studio передать эти переменные в ProjectA, возможно, путем обновления соответствующих полей в ProjectA.vcxproj
.
Ничего подобного не происходит, когда мы делаем «Добавить ссылку на проект», и все, с кем я общаюсь, используют относительные пути и файлы поддержки для обработки зависимостей вручную.
И наоборот, в cmake target_link_libraries(consumer producer)
распространяет все (включая / libs / etc) от производителя до потребителя, как и ожидалось.
Таким образом, мне не ясно, для чего предназначены «ссылки на проекты» в Visual Studio для C ++.Кто-нибудь может объяснить?