Что вы испытываете, так это оптимизирующая часть компоновщика: по умолчанию он не включает код, на который нет ссылок.Компилятор создаст несколько объектных файлов с наиболее вероятными неразрешенными зависимостями (вызовы, которые не могут быть удовлетворены включенным кодом).Таким образом, компоновщик берет все переданные объектные файлы и пытается найти решения для неразрешенных зависимостей.Если это не удается, он проверит доступные файлы библиотеки.Если есть несколько вариантов с одним и тем же точным именем / подписью, он начнет жаловаться, потому что не сможет решить, какой из них выбрать (для идентичного кода это не имеет значения, но представьте себе разные реализации, использующие разные «закулисные» работы).в памяти, таких как отладка и выпуск).
Единственный (и, возможно, самый простой способ), который я мог придумать, чтобы обнаружить все эти множественные определения, - это создать другой проект статической библиотеки, включающий все исходные файлы, используемые в обоих статическихЛИЭС.При создании библиотеки компоновщик будет включать в себя все, что вызывается или экспортируется - вам не понадобится специальный код, вызывающий материал, чтобы компоновщик мог видеть / включать все, пока он экспортируется.
Однако я до сих пор не понимаючто вы на самом деле пытаетесь достичь в целом.Пытаетесь найти код, разделяемый между двумя библиотеками?