В проекте, основанном на autotools, я собираю еще одну небольшую статическую библиотеку и связываю ее с моей окончательной общей библиотекой безопасным способом (статика создается с помощью -fPIC и т. д.). В конце концов, не должно быть никаких доказательств того, что существование внутренней статической библиотеки как части процесса сборки, и все ее символы должны быть «скопированы» в общую библиотеку.
Последнее условие, безусловно, выполнено, проверено с помощью nm
, и использование ldd
в общей библиотеке не обнаруживает «необходимой» зависимости раздела ELF от статической библиотеки. Но архивный файл libtool .la
— это совсем другая история: переменная dependency_libs
в нем содержит запись -lmy-secret-temp-lib
(имена были изменены для защиты невиновных), которая затем ломает любой основанный на libtool проект, который пытается собрать окончательную библиотеку, поскольку эта зависимость может никогда не встретить. Проекты без libtool, конечно, хороши, поскольку ничто, кроме libtool, не просматривает .la
файлов.
Есть ли способ, которым я могу указать libtool не добавлять библиотеку в переменную dependency_libs
в своем файле .la
, когда она включена в переменную xxxx_la_LIBADD
? Может быть, есть какие-то аргументы до и после, такие как -flibtool_ignore -lmy-secret-lib -flibtool_payattention
, чтобы позволить разработчику сказать libtool, чтобы он перестал мешать? Было бы неплохо иметь возможность указать autotools/libtool вообще не создавать/устанавливать файл .la
, но это не вариант!