Makefile: заставить проект использовать динамическую или статическую библиотеку во время сборки - PullRequest
1 голос
/ 13 марта 2012

У меня есть простой проект, который использует одну библиотеку для запуска.

Например, моя программа называется «myApp», и у меня есть библиотека, которую я сам создал и закодировал как libspoonybard. Makefile для libspoonybard настроен таким образом, чтобы для этой библиотеки создавался файл как общего объекта (.so), так и файла статической библиотеки (.a).

-myApp
--libspoonybard

Что бы я указал во время сборки (либо с помощью флагов командной строки, либо с помощью make-файла), чтобы я мог собрать «myApp» как в виде «статической» версии (то есть: принудительно использовать libspoonybard.a), так и «динамической» "версия (принудительно использовать libspoonybard.so во время выполнения).

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

Спасибо всем заранее за вашу помощь.

Ответы [ 2 ]

3 голосов
/ 13 марта 2012

Вы можете использовать флаг -static, указать файл .so или .a напрямую и т. Д.

Краткое введение: 3.2 Общие библиотеки и статические библиотеки (Stallman / Gough)

3 голосов
/ 13 марта 2012

"- static" vs "-shared" может использоваться в GCC:

http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options

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