Как объединить две статические библиотеки в одну общую библиотеку - PullRequest
0 голосов
/ 04 ноября 2018

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

$ gcc -c mathutil.cpp -o mathutil.o

$ ar rcs libmathutil.a mathutil.o

$ gcc -c dateutil.cpp -o dateutil.o

$ ar rcs libdateutil.a dateutil.o

Может, кто-нибудь подскажет, как объединить эти две статические библиотеки в одну общую библиотеку.

Я попробовал следующую команду

gcc -Wl, - общий архив

Но это дает много ошибок определения.

1 Ответ

0 голосов
/ 04 ноября 2018

Если у вас есть исходные файлы, почему бы не скомпилировать их напрямую в общую библиотеку? Добавьте флаг -fPIC к строкам компиляции (PIC = Position Independant Code), а затем свяжите что-то вроде:

Скомпилируйте файлы:

gcc -c -fPIC mathutil.cpp -o mathutil.o
gcc -c -fPIC dateutil.cpp -o dateutil.o

Создать общую библиотеку:

gcc -shared dateutil.o mathutil.o -o bin/shared/libutil.so
...