![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Гость_Anton. |
|
|||
Unregistered |
Как, мне, например, подключить в линухе библиотеку SVGAlib?
Если сделать инклуд, то файл компилится, только без команды -lvga, при попытке вызвать библиотечную функцию - не компилится. С командой -lvga не компилится вообще. Библиотека представляет собой архив, состоящий из множества файлов. Если комапть дальше, то мне попросту нужно писать простенькие программки с графикой под линукс в универ. Вот так. Буду признателен, если кто-нибудь подскажет. =) |
|||
|
||||
vickr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
При указании -lvga (это, кстати, ключ компоновщика, а не компилятора), ты говоришь линкеру искать внешние символы (в частности, те имена функций, которые содержатся в заголовочном файле подключаемой библиотеки), в первую очередь, в файле libvga.so (динамической библиотеке), затем, если оная не найдена, в архиве libvga.a. Т.е. процесс построения исполняемого модуля состоит из 2 этапов - компиляции, когда достаточно только объявлений, содержащихся в хедерах, и компоновки, когда объектные файлы (результаты компиляции) объединяются в один исполняемый файл.
Более предметно: gcc -c myfile.c gcc -o myfile myfile.o -lvga Здесь возможны еще ключи с указанием путей для поиска заголовочных файлов (при компиляции) и библиотек (при компоновке, если они не находятся в стандартных каталогах типа usr/lib). Как правило, эти 2 этапа допучкается указывать в одной строке (сразу флаги -с и -о). Это кусок теории, лично я не работал с графикой под линухом - просто изложил общие концепции, на которых можно споткнуться с непривычки. Конкретная ошибка может заключаться в чем угодно - необходимо уточнение. Ты говоришь, что
![]() Удачи. --------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
|||
|
||||
Гость_Anton |
|
|||
Unregistered |
vickr
Ох, спасибо огромное, за такой развернутый ответ. когда говорил про несколько файлов имел ввиду дистрибутив, в который запакованы файлы библиотеки. Вот. Вобщем, очевидно, что я должен указать, где искать эти файлы при компановке. Попробую. =) |
|||
|
||||
Гость_Anton |
|
|||
Unregistered |
Да, вот как мне это сделать?
при прописке -lvga ошибка такая: cannot find -lvga. Как направить компановщик по нужному пути? |
|||
|
||||
vickr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
Для начала попробуй найти файлы libvha.* или лучше *vga*. Запусти поиск с корневого, включая поддиректории, если у тебя не слишком разбухшая система или поищи по очереди в локальных директориях, находящихся в корне (/root (если ты root:) ), /usr, /lib и т.д.).
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |