У меня есть два решения, которые включают в себя и ссылаются на одну и ту же статическую библиотеку. И я включаю библиотеку, используя функцию «Добавить ссылку ...», в отличие от указания дополнительного ввода компоновщика. Кажется, что, когда я строю одно из решений, это заставляет другое решение думать, что ему нужно перестроить разделяемую библиотеку, а затем заставляет ее повторно связать второе решение. Таким образом, если я перехожу назад и вперед между двумя решениями (без каких-либо изменений кода), решения выполняют связь каждый раз.Обмен статическими библиотеками C++ между несколькими решениями вызывает ненужную перестройку
Похоже, что общая статическая библиотека на самом деле повторно скомпилирована, но VS выполняет для нее библиотечный шаг. Я предполагаю, что этот этап библиотекаря происходит потому, что файл .lastbuildstate (который содержит путь к решению, который в последний раз строит проект), как установлено, устарел.
Кто-нибудь когда-либо испытывал эту проблему раньше? Есть ли лучший способ сделать это?
Если у вас libX как зависимость от ProjA и ProjB, и вы перестраиваете ProjA * с зависимостями * (в отличие от построения * только * ProjA, выбираемый вариант, если вы щелкните его правой кнопкой мыши в проводнике решений), он перестроит libX, а также вызвать несоответствие зависимостей ссылок на ProjB. Вот как работает VS. Проверьте, как вы перестраиваете ProjA или ProjB. Просто выбрав «Rebuild» будет вызывать поведение, описывающее по-дизайн. – WhozCraig
У вас есть произвольный шаг сборки в библиотеке случайно? – DarkWanderer
@WhozCraig Я просто выбираю регулярную «сборку» для построения решения. – Aaron