Я собираю два очень похожих набора исходного кода в один библиотечный архив. Возможно, есть 5 или 6 функций, которые определены с одинаковыми сигнатурами в двух наборах кодов, но с немного отличной реализацией. Мне нужно найти эти функции, чтобы я мог либо изменить их имена (если они мне нужны), либо удалить одну из них.
Я думал, что ld
сделает за меня тяжелую работу, сообщив, что функции были многократно определены, но он этого не делает. В настоящее время у меня есть двухэтапная процедура ссылки:
1 - инкрементная ссылка двух наборов исходных файлов для создания архивного файла. Если я уже знаю, какие функции определены несколькими способами, я могу использовать nm
, чтобы подтвердить, что символ дважды появляется в архиве.
2 - окончательная ссылка этого файла архива с объектом, вызывающим код библиотеки. «ld» не жалуется на этом шаге и, по-видимому, просто связывает первый соответствующий объект, который он находит в архиве, не сообщая, что второй объект также может быть использован.
Есть идеи, как заставить ld
сканировать весь архив и сообщать о множественных функциях? Спасибо.