andrew_programmer
написал 17 мая 2006 года в 22:43 (1038 просмотров)
Ведет себя
неопределенно; открыл 6 тем в форуме, оставил 13 комментариев на сайте.
У меня при линковке библиотеки SDL(файл libSDL.a)к программе не обнаруживаются функции использующие Xwindows(библиотека X11) и линковщик выдает сообщения об ошибках.
Так у меня дело обстоит,как с собранной из исходников библиотекой SDL,так и с той которая была установлена вовремя инсталяции Линукса(дериктория /usr/lib/).
Естественно,что библиотека X11 у меня установлена и все необходимые файлы там есть.
Я пробовал при линковке добавлять библиотеку libXxf68vm.a и некоторые другие,но результат тоже.
Читал в интернете,как другие устанавливают,так у них таких проблем небыло.
Есть кто-нибудь из пользователей RH,кто смог успешно слинковать к программе библиотеку SDL ?
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Десять минут назад мне пришла идея.Я решил в исходниках SDL в дериктории
…/video/X11/ во всех файлах прописать пути вручную.Собрал библиотеку заново.Начал линковать SDL к программе и(Ура!) нет ошибок линковки.Скомпилировал примеры и они наконец заработали !!!
p.s.
Не ожидал я что мне в голову придет такая идея.А уж то,что она сработает — темболее неожидал.Извините,что ложная тревога получилась.
брр. упорство это хорошо ;)
почему libSDL.a? зачем тебе .a? статической компиляции захотелось? нафига козе баян? линковать надо с libSDL.so посредством опции линкера -lSDL, уже обсасывали кажись.
вот смотри, лезем в тутор на libsdl.org находим следующий сорец:
и строчку для компиляции этого сорца:
что не работает? у меня программки с sdl компилировались в rh7.3, rh9.0, slack10, gentoo<чего-то-там-до-сих-пор-не-запомню>. И компилировались именно таким образом.
Аффтар пиши ище……..смеялсо……
Вы меня точто за тупого принимаете.
Линкуется libSDL.a
НО!В командной строке набирать надо все по другому!
Вот так(с примером моих полных директорий):
gcc -o /home/andrew/MyPrograms/main /home/andrew/MyPrograms/main.c -I/usr/include/SDL -L/home/andrew/src/.libs -lSDL
А если еще math.h использовать,то к приведенной выше строке нужно добавлять -L/usr/lib/ -lm
Хоть я и начинающий пользователь Линукса,но я далеко не тупой как вы обомне думаете.
А Линукс пришлось использовать потому,что,к сожалению,не все люди понимают Ассемблер,а мне нужно написать научную программу(я физик),логику работы которой смогли бы проверить другие.
А вообще-то я люблю Ассемблер и пишу на нем под ассемблерную операционную систему КОЛИБРИ(под неё на ассемблере писать намного проще,чем под UNIX системы).
Линукс хорошая система,но Си мне не по душе.
насколько мне подсказывает моя память, для физиков, особенно в научной среде, более привычен Fortran. а их есть ;) под линух.
так при чём тогда тут С?
ну, я понимаю.. что хочется использовать имеющиеся инструменты, которые есть в системе. ну так и тогда использовать ещё и те, которые приняты в среде. раз уж научный работник…
остальные параметры в правильно установленном gcc указывать не нужно…
да и -I/usr/include/SDL — избыточно. потому как
должно быть достаточно ;)
НО! заметь разницу с:
Фортран изучать надо,а Си я знаю.
У нас на кафедре есть несколько чловек,которые свои научные программы пишут под Linux и на Си.
Genie,то что вы сказали про команды GCC и разницу между «…» и <…> я знаю.
> Вы меня точто за тупого принимаете.
> Линкуется libSDL.a
> НО!В командной строке набирать надо все по другому!
* myst ржот пацтулам
как ты догадался? ;) обижаться не стоит, но столько времени пытаться установить SDL… это сильно. Всё, конечно, бывает, но не для такой фенечки как sdl.
откуда берётся выделенная строчка? Ты что не установил SDL, а только скомпилировал? Так почему же, тогда, -I/usr/include/SDL?
Сделай вот что:
Теперь повторить это для SDL_gfx, SDL_image, SDL_ttf, SDL_sound, SDL_mixer. последовательность, как мне думается, может быть произвольной, если нет, то тебе об это скажут, и, поскольку ты не тупой, то я думаю подстроиться под эти обстоятельства сможешь. ;)
после этого все libSDL*.so будут лежать в /usr/lib, все хедеры в /usr/include/SDL*.
вот это почему я не знаю… ты каким образом устанавливал gcc и binutils?
но раз так, то помимо -I/usr/include/SDL, тебе придётся ещё говорить -L/usr/lib.
а мне по душе и линух, и C и асм, и (к чему бы это) проблем у меня с ними нету. Я пишу на C и asm’е для линуха, доса (точнее не-доса, ибо на дос я забил сразу же после знакомства с asm’ом) не вылезая из линухов, только периодически меняя дистры, ибо никак не могу найти идеала.
rgo,а вот с выделенной строчкой я дествительно,глупость написал.А -I/usr/include/SDL/ я в действительности не пишу(библиотека у меня установлена).
Я не занимался каждый день установкой библиотеки SDL.Я брался за её установку три раза(последний удачный).Но периоды времени между этими установками — несколько дней.Вот и кажется,что я долго ей занимался.
Вобще-то смеятся над людьми,которые учаться- это нехорошо.Если надовсеми смеятся,то идея этого сайта- помогать людям лучше разобраться в Unix системах- теряет смысл.Я вот тоже имею мощные знания и опыт в различных областях,но над другими не смеюсь.
p.s.
Учиться,учиться,учиться.
Идея этого сайта несколько другая, как мне кажется…
Да ладно тебе, myst, нормальные вопросы человек задает. Ну бывает, кто-то наступает на стандартные грабли, а кто-то очень долго разбирается с тем, что другие поняли за две минуты. Так что будь терпимее :) Уж лучше на такие вопросы отвечать, чем на всякие «у меня пхпбб не работает что делать» (см. соседний топик)
Не ну, я-то ничего против не имею, но можно же (в конце концов!) прочитать доку по дистрибу и поставить пакеты нужные? Или слово «читать» тов. Andrew не знакомо?
myst,еслибы я не читал документацию,то тогда бы не сдвинулся с места.Я бывал на сайте SDL,читал документацию там,скачивал оттуда библиотеку SDL и пакет SDL-devel(ввиде rpm пакетов).Устанавливал соответствующие пакеты.Но в линуксе есть много нового- непохожего на другие операционные системы.Иногда оказывается,что для реализации задумки нужно знать вещи,аналогов которых в других операционных системах не существует.Соответственно трудно понять,что необходимо искать и что делается неправильно.
Уж кто-кто,а физики тратят уйму времени на чтение книг,документации,на решение задач(как теоретических,так и рассчетных).Еслибы у меня было свободное время,то сам бы изучил,то что нужно.А раз уж его нет,то обратился к людям.В надежде,что люди меня поймут и ответят по нармальному на мои вопросы.А не будут смеятся надомной.Многие люди выходят в интернет с целью чему-то научиться или обменяться опытом.А если не хочется делиться опытом,то лучше вообще ничего не писать(так делают дабы не обидеть человека).
Andrew, отвечаю нормально. Берёшь доку НЕ ПО SDL, А ПО ДИСТРУ, КОТОРЫМ ПОЛЬЗУЕШЬСЯ, изучаешь как работает его пакетный менеджер и, пользуясь пакетным менеджером, ставишь УЖЕ СКОМПИЛИРОВАННЫЕ пакеты SDL, какие тебе нужно.
Вот это другое дело.
Спасибо за хороший совет!
Обязательно почитаю.
Я тебе это уже третий раз говорю… :))