gcc обнаруживает повторяющиеся символы / функции в статических библиотеках

Есть ли способ заставить gcc обнаруживать повторяющийся символ в статических библиотеках по сравнению с основным кодом (или другой статической библиотекой?)

Вот пример ситуация:

main.c ошибочно содержал определение функции, например с подписью uint foohash (const char *)

foo.c также содержит определение функции с подписью uint foohash (const char *)

foo.c и другие исходные файлы скомпилированы в статическая библиотека утилит, с которой связана основная программа, то есть что-то вроде:

 gcc -o main main.o util.o -L ./libs -lfooutils

Итак, теперь main.o и libs / libfooutils.a содержат функцию foohash. Предположительно компоновщик нашел этот символ в main.o и не стал искать его где-либо еще.

Есть ли способ заставить gcc обнаруживать такую ​​ситуацию?

5
задан user964970 1 February 2012 в 10:00
поделиться