Vaclav_ Ответов: 2

Как добавить / связать библиотеку с библиотекой - с помощью GCC ?


Моя цель - иметь одно место для редактирования общего класса.
У меня есть стандартная библиотека Linux x.a, и она компилируется.
"Проблема" - общий класс использует другую библиотеку и оригинальный "проект"
был связан с такой библиотекой.
Я включил необходимые заголовки, теперь мне нужна помощь, чтобы выяснить, как связать дополнительную библиотеку.

Используя "стандартный" GCC для сборки проекта x.a library, я не вижу простого варианта(ов) для простой ссылки (кроме -l / -L) на другую библиотеку.

Что я уже пробовал:

Заголовки в порядке, но
Я не нашел никаких ссылок на то, как связать библиотеки.

Я добавил gcc -lbluetooth .
Библиотека подчинилась, но все равно потерпела неудачу - не может найти ссылок - при запуске из "материнского" проекта.

2 Ответов

Рейтинг:
8

Vaclav_

Спасибо.
Я не уверен, как работает этот "форум", но мне нравится задавать последующие вопросы, так как я не уверен, как проект "Мать" на самом деле связывается с библиотекой "bluetooth"-для этого gcc хочет полное имя файла libbluetooth.a?
Должен ли я указать путь к любому правильному имени файла ( полному или "кастрированному" )? Сейчас он падает ( g++: error: libbluetooth.a: нет такого файла или каталога), и я просто шарю вокруг, пробуя разные способы.
Я уже давно реализовал библиотеку bluetooth и уверен, что у нее есть "системный" путь - no (-L).

Richard MacCutchan

Я ответил на ваш предыдущий вопрос о связывании в Linux/UNIX еще в апреле прошлого года: Re: Как "включить / связать" libbluetooth-dev (пакет?) ? - доски обсуждений программирования Linux[^].

При построении конечного исполняемого объекта компоновщику необходимо знать, где найти любые библиотеки, не входящие в стандартный набор. Таким образом, вам нужно указать имя библиотеки одним из двух способов с помощью либо-l, либо -L, как описано в документе по ссылке, которую я предоставил в приведенном выше решении.

Рейтинг:
20

CPallini

Просто передайте имя файла (без -l) требуемой библиотеки для gcc.