включить .so в другой .so без зависимости? - PullRequest
2 голосов
/ 26 августа 2010

У меня есть программа переменного тока, которая опирается на вторую библиотеку, чьей компиляцией я могу управлять.я хочу иметь возможность скомпилировать мою программу в общую библиотеку объектов без ссылки на вторую библиотеку.другими словами, я хочу одну монолитную библиотеку общих объектов в конце.Как я могу это сделать?

, если я отдельно компилирую вторую библиотеку в .so и включаю ее в качестве зависимости при компиляции моей программы, я вижу, что мне нужен этот файл, когда я запускаю ldd в двоичном файле.

Ответы [ 2 ]

3 голосов
/ 26 августа 2010

Вам необходимо скомпилировать вторую библиотеку как .a (статическую библиотеку) и статически связать ее с вашей программой на c.

Статическое связывание - когда объектные файлы связаны во время компиляции и являются частью окончательного двоичного файла, результирующий исполняемый файл может выполняться без зависимостей.

Связанные общие библиотеки (.so) связаныво время выполнения и должно быть доступно при выполнении двоичного файла, который связывает их.

флаг gcc для статической ссылки: -static это автоматически выполнит поиск файлов .a.

0 голосов
/ 26 августа 2010
...