Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Как подключать библиотеки? |
Автор: Гость_Anton. 2.1.2004, 16:22 |
Как, мне, например, подключить в линухе библиотеку SVGAlib? Если сделать инклуд, то файл компилится, только без команды -lvga, при попытке вызвать библиотечную функцию - не компилится. С командой -lvga не компилится вообще. Библиотека представляет собой архив, состоящий из множества файлов. Если комапть дальше, то мне попросту нужно писать простенькие программки с графикой под линукс в универ. Вот так. Буду признателен, если кто-нибудь подскажет. =) |
Автор: vickr 2.1.2004, 18:05 | ||
При указании -lvga (это, кстати, ключ компоновщика, а не компилятора), ты говоришь линкеру искать внешние символы (в частности, те имена функций, которые содержатся в заголовочном файле подключаемой библиотеки), в первую очередь, в файле libvga.so (динамической библиотеке), затем, если оная не найдена, в архиве libvga.a. Т.е. процесс построения исполняемого модуля состоит из 2 этапов - компиляции, когда достаточно только объявлений, содержащихся в хедерах, и компоновки, когда объектные файлы (результаты компиляции) объединяются в один исполняемый файл. Более предметно: gcc -c myfile.c gcc -o myfile myfile.o -lvga Здесь возможны еще ключи с указанием путей для поиска заголовочных файлов (при компиляции) и библиотек (при компоновке, если они не находятся в стандартных каталогах типа usr/lib). Как правило, эти 2 этапа допучкается указывать в одной строке (сразу флаги -с и -о). Это кусок теории, лично я не работал с графикой под линухом - просто изложил общие концепции, на которых можно споткнуться с непривычки. Конкретная ошибка может заключаться в чем угодно - необходимо уточнение. Ты говоришь, что
![]() Удачи. |
Автор: Гость_Anton 3.1.2004, 02:24 |
vickr Ох, спасибо огромное, за такой развернутый ответ. когда говорил про несколько файлов имел ввиду дистрибутив, в который запакованы файлы библиотеки. Вот. Вобщем, очевидно, что я должен указать, где искать эти файлы при компановке. Попробую. =) |
Автор: Гость_Anton 3.1.2004, 02:26 |
Да, вот как мне это сделать? при прописке -lvga ошибка такая: cannot find -lvga. Как направить компановщик по нужному пути? |
Автор: vickr 3.1.2004, 09:39 |
Для начала попробуй найти файлы libvha.* или лучше *vga*. Запусти поиск с корневого, включая поддиректории, если у тебя не слишком разбухшая система или поищи по очереди в локальных директориях, находящихся в корне (/root (если ты root:) ), /usr, /lib и т.д.). |