Вы можете использовать утилиту nm в сочетании с grep , чтобы найти, какие исполняемые файлы ссылаются на символ, например:
nm <i>name_of_executable</i> | grep <i>symbol</i>
Так, например, если бы у меня был список исполняемых файлов, которые могли бы использовать «strcat», я мог бы проверить это с помощью:
for file in exectuble1 executable2 ... executableN; do
references_to_strcat=`nm "$file" | grep strcat -c`
if [ $references_to_strcat -ne 0 ] ; then
echo "$file"
fi
done
Небольшой цикл выше (при условии, что BASH) выведет список всех файлов, ссылающихся на "strcat". Обратите внимание, что это только скажет вам, какой исполняемый файл действительно связан с символом ... я не знаю, как определить, какие исполняемые файлы могут ссылаться на функцию с использованием динамической загрузки (например, dlopen / dlsym) / dlcose ).
Обратите внимание, что если у вас есть исходный код, а не только исполняемые файлы, вы можете использовать Doxygen для генерации полного графа вызовов (в дополнение к документации) для вашего исходного кода, так что это еще одна возможность .