Visual Studio 2010 не автонастраивает статические библиотеки из проектов, которые являются зависимостями, поскольку это должно

  • Создайте новое решение с помощью проекта командной строки консоли C ++
  • Создайте новый проект, статическую библиотеку C ++
  • Сделать проект командной строки зависеть от библиотеки
  • Убедитесь, что «Зависимости библиотеки ссылок» включены в Configuration => Linker => General (по умолчанию)
  • Visual Studio все равно не свяжет библиотеку.

Как я могу это исправить? Он работал в Visual Studio 2008.

Это все еще работает, но было изменено в VS 2010:

«С VS2010 мы остановили поддержку зависимостей проектов, определяющих неявные ссылки, и мы также внедрили новый способ определения зависимостей проекта на уровне проекта. Поскольку ссылка на проект и зависимость проекта являются близкими концепциями, как применимыми к проекту, имело смысл как они будут представлены вместе, в файле проекта. Как видно из нижеприведенных fragmentов, единственное различие между определением ссылки проекта и определением зависимости проекта состоит из метаданных, которые определяют включение / исключение выходной сборки в / из командной строки основного проекта. Хотя мы не удалили диалоговое окно «Зависимости проектов», мы рекомендуем определять новые зависимости проекта через диалоговое окно «Структура и ссылки». Вам нужно установить свойство «Сводка сборки ссылок» на странице свойств UI – false для зависимостей проекта и от true для ссылки на проект. ”

Просто щелкните правой кнопкой мыши по проекту консоли, выберите «Свойства-> Общие свойства-> Структура и ссылки-> Добавить новую ссылку» и добавьте проект статической библиотеки; также проверьте, что «Зависимости библиотеки ссылок» имеет значение True с правой стороны. Кажется, работает для отладки и выпуска. Ты узнаешь что-то новое каждый день. 😉

Они изменили интерфейс для добавления зависимостей проекта C ++ в VS2010, но, как ни странно, без удаления старого пользовательского интерфейса или каким-либо образом указав, что он больше не работает.

Чтобы создать зависимость в VS2010, вам нужно использовать «Добавить новую ссылку» (можно найти в свойствах проекта) и, возможно, также в меню правой кнопки проекта (не нужно проверять здесь VS)

Старый диалог «Зависимости проектов» в основном нарушен.

Для версии MSVC 14 (версия 2015) щелкните правой кнопкой мыши проект, затем "Add->Reference..." и проверьте все необходимые зависимости.

Да, он изменился где-то между версиями 2010 и 2015 годов. Весело!

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

ОБНОВИТЬ

Все-таки такое же (новое) поведение в MSVC 2017

Я считаю, что старый пользовательский интерфейс (зависимости) влияет на порядок сборки для Visual Studio при построении внутри IDE для получения информации. Новая система конфигурации проекта включает ссылки в каждый файл проекта, чтобы вы могли создавать извне среды IDE (тогда как в предыдущих версиях вы не могли, поскольку вы не получили бы автоматическую привязку для зависимостей, поскольку зависимости выполнялись только на уровне решения ).

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

  • Как создать элемент управления ActiveX (COM) на C #?
  • Как отключить отображение пробельных символов в среде Visual Studio
  • Как использовать Visual Studio для проектов на C # вместо VB.NET?
  • Как я могу исправить приложение Windows .NET при запуске с кодом исключения: 0xE0434352?
  • как запустить iisexpress приложение пула под другим идентификатором
  • Как настроить gtk на Visual Studio 2010
  • Могу ли я установить две разные версии Visual Studio на одном компьютере?
  • ошибка LNK2038: обнаружено несоответствие для «_MSC_VER»: значение «1600» не соответствует значению «1700» в CppFile1.obj
  • Ошибка при подписании: SignTool.exe не найден
  • Почему F5 не перестраивает проект перед выполнением в Visual Studio?
  • Повреждение кучи при использовании CreateWindowExW
  • Давайте будем гением компьютера.