Есть ли способ заставить 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 обнаруживать такую ситуацию?