Чтобы ответить на ваш второй вопрос, да, возможно иметь динамические и статические библиотеки, связанные с одним и тем же приложением. Просто будьте осторожны, чтобы избежать межбиблиотечных зависимостей, чтобы у вас не было проблем с порядком библиотек. Вы должны иметь возможность перечислять библиотеки в любом произвольном порядке. Там, где я работаю, мы предпочитаем перечислять их в алфавитном порядке.
Редактировать : Чтобы связать статическую библиотеку, используйте флаг -lfoo. Чтобы добавить каталог в путь поиска библиотеки, используйте -L / path / to / libfoo.
Редактировать : Вам не нужно связывать динамическую библиотеку. Ваша программа может использовать функцию, предоставляемую вашим компилятором, для открытия динамической библиотеки во время выполнения, или вы можете связать ее во время компиляции, и компилятор разрешит символы, но не включит их в двоичный файл. См. Комментарий pjc50 ниже.