Я хочу создать библиотеку, которая позволит моим программам использовать один класс, назовем его A, у которого есть несколько аккуратных методов и т. Д. Однако этот класс основан на нескольких других (B и C) и включает в себя: их .hpp
файлы в его .cpp
файл.
Процесс сборки выглядит так:
g++ -c B.cpp
g++ -c C.cpp
g++ -c A.cpp
ar rvs A.a *.o
Таким образом, мои другие проекты теперь должны только файлы, чтобы включить мой класс, A.hpp
а также A.a
, Я правильно делаю статическую библиотеку? Стоит ли помещать только A.o в архив (библиотеку) (при этом возникают ошибки)?
Просто для справки, вот как компилируется программа, использующая класс A:
g++ test1.cpp A.a -o test1
Редактировать: Есть ли способ неявно сказать компоновщику, чтобы связать мою программу с A.a? Так же, как мне не нужно вручную связывать его с iostream …
Хорошо, как ты это делаешь сейчас. Поместите все объектные файлы в статическую библиотеку.
Других решений пока нет …