Одна возможность (правда, и некрасиво, но ...) заключается в извлечении отдельных объектных файлов из статической библиотеки.Если функция, которую вы вызываете, и функция , которую она вызывает , находятся в отдельных объектных файлах, вы можете ссылаться на объектный файл, содержащий функцию, которую нужно вызвать, но не на файл, содержащий функцию, которую она вызывает.
Это дает вам степень детализации только на уровне полных объектных файлов, поэтому, если обе задействованные функции находятся в одном объектном файле, это не сработает.Если вам действительно нужно заставить вещи работать, и вы не против сделать действительно незначительную модификацию рассматриваемого объектного файла, вы можете иметь возможностьиспользуйте бинарный редактор, чтобы пометить вторую функцию как слабую внешнюю, что означает, что она будет использоваться в отсутствие любой другой внешней среды с таким же именем, но если будет предоставлена другая, вместо нее будет использоваться
То, что последнее квалифицируется как «изменение библиотеки» или нет, зависит от вашей точки зрения.Он не изменяет код в библиотеке, но изменяет немного обертки объектного файла вокруг этого кода.Я предполагаю, что вы бы предпочли этого не делать, но это все же может быть самым чистым выходом из иного невыносимого положения.