Как сделать ссылку на статическую библиотеку в C? - PullRequest
28 голосов
/ 10 ноября 2009

Я использую code :: blocks для компиляции моей статической библиотеки. Выходной результат - файл libstatic.a. Теперь, как мне связаться с моей библиотекой, чтобы использовать функции, которые были скомпилированы?

(я пытался использовать #include "libstatic.a", но мой проект не компилируется)

Ответы [ 5 ]

45 голосов
/ 10 ноября 2009
cc -o yourprog yourprog.c -lstatic

или

cc -o yourprog yourprog.c libstatic.a
6 голосов
/ 10 ноября 2009

Вы должны #include "libstatic.h", т.е. использовать соответствующий заголовочный файл в своем коде ( это , почему ваш код не компилируется) и включить путь к вашему libstatic.a в параметрах компоновщика в качестве одного из ваши входные библиотеки.

Эта веб-страница содержит несколько примеров ссылок на статическую библиотеку, например,

gcc -I. -o jvct jvct.c libjvc.a
2 голосов
/ 20 февраля 2014
gcc -I. -o jvct jvct.c libjvc.a
2 голосов
/ 04 мая 2013

Мне нужно было указать путь к библиотеке в моем make-файле. Для этого случая вы можете использовать:

gcc -o myapp main.c -L. -lstatic
0 голосов
/ 10 февраля 2017

Чтобы связать чисто статически, используйте -static

cc -static yourprogram.c libstatic.a
...