Можем ли мы автоматически сгенерировать версию-скрипт?
Вы можете: запустить nm -C *.o | egrep ' [TDBW] '
, чтобы получить список глобальных символов, а затем заглянуть в include/*.h
, чтобы увидеть, какие из них следует экспортировать. Это, вероятно, будет хрупким: если вы, например, используйте макросы для генерации имен символов, это, вероятно, не будет работать вообще.
Может быть, стоит сгенерировать список один раз, составить его вручную, а затем вручную сохранить его вместе с источниками в системе контроля версий.
Если количество экспортируемых символов относительно невелико, компиляция с -fvisibility-hidden
и аннотирование только общедоступных символов является гораздо более надежным решением.