Статические библиотеки не связывают другие библиотеки, статические или динамические.
ОК, если предположить, что два файла C ++, a.cpp и b.cpp.
g++ -c a.cpp -o a.o // compile a.cpp to a.o
rm -f lib1.a // no existing lib1.a (this is not essential)
ar rvs lib1.a a.o // create library lib1.a and add a.o to it
g++ -c b.cpp -o b.o // compile b.cpp to b.o
ar rvs lib1.a b.o // ad b.o to existing lib1.a
Очевидно, вы можете сделатьлюбое количество копий между этапами для создания библиотеки с нужным именем.Вы также можете сделать
ar --help
, чтобы получить параметры ar, которые могут немного упростить процесс.Честно говоря, это команда, которую я почти никогда не использую, кроме как для создания статических библиотек из списка объектов.