2012-02-06 2 views
3

Скажем, у меня есть C++ Visual Studio решение 2010 с 2-х проектов: один главный проект с точкой входа в программу и второй проект с статической библиотеки (связанной с основной,), который используется в других решениях VS2010.Ссылочные библиотеки в Visual Studio 2010 проекты

Проект статической библиотеки использует дополнительную стороннюю библиотеку (.lib). В настоящее время эта сторонняя статическая библиотека установлена ​​в поле главного проекта проекта дополнительных зависимостей раздела Linker -> Input страницы свойств, чтобы вся программа была скомпилирована.

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

Существуют ли разные способы сделать это? Могу ли я включить эту стороннюю библиотеку в .lib, сгенерированную статическим библиотечным проектом? Есть ли хорошая практика или рекомендации по этому поводу?

Спасибо!

+0

Не думайте, что есть способ сделать это со статической связью. Я боюсь .. – StevieG

+0

Просто добавьте .lib в проект библиотеки с Project + Add Существующий элемент, и он будет слит. Наличие нескольких копий одного и того же .lib - не самая лучшая идея. –

ответ

1

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

1

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

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