Объединение нескольких статических архивов в новый - PullRequest
0 голосов
/ 18 апреля 2010

Я делаю игровой движок для мобильных устройств. Я хочу скомпилировать свой код, связать его с несколькими статическими библиотеками, а затем объединить мой скомпилированный код с этими статическими библиотеками, чтобы сформировать новую статическую библиотеку. Тем не менее, мой Google Fu покидает меня.

Предположим, у меня есть статические библиотеки a.a, b.a и c.a и мой код. Я хочу собрать все это в awesome.a.

Как я могу это сделать?

Кстати, я использую CodeSourcery arm-none-linux-gnueabi-ar.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 18 апреля 2010

Предполагая, что a.a, b.a и c.a находятся в CWD, что-то вроде:

mkdir a-objs && ( cd a-objs && ar -x ../a.a )
mkdir b-objs && ( cd b-objs && ar -x ../b.a )
mkdir c-objs && ( cd c-objs && ar -x ../c.a )
rm -f awesome.a && ar -r awesome.a a-objs/* b-objs/* c-objs/* && ranlib awesome.a

должно работать.

0 голосов
/ 18 апреля 2010

Если вы хотите поместить код в статическую библиотеку, вы НЕ связываете его. Статическая библиотека вообще не связана. Для удобства это просто набор объектных файлов, помещенных в один файл.

Вы создаете объектные файлы и помещаете их в библиотеку. Если вы хотите добавить свои объектные файлы в существующую библиотеку вместо создания новой, это довольно тривиально (хотя, если существующая библиотека достаточно известна, чтобы кто-то мог ожидать, что она делает или не делает я бы сказал, что это плохая идея добавлять новые вещи, о которых люди даже не подозревают).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...