В другой раз вы хотите использовать ld -r для создания частичной ссылки, если у вас есть несколько объектных файлов, которые содержат статическую инициализацию, которые необходимы для обеспечения определенной функциональности, но никогда не вызываются напрямую каким-либо кодом.
Если вы хотите, я могу написать документ, который демонстрирует, как это работает и почему это работает!
(см., Например, регистрацию класса C ++ во время выполнения, она использует функцию статического регистра, которая регистрирует себя в реестре, которую затем можно использовать для создания и возврата Base * с полиморфным поведением, поскольку она создала новый объект, который был унаследован из базы. См. знание C ++ во время выполнения классов , которое является ответом на вопрос, который я задал.)