Здравствуйте!
Возникла у меня проблема с подключением библиотеки SDL_draw при написании программ на Си под Linux. Перерыл в интернете всё что только можно и не нашёл описания как решить эту проблему. Поэтому прошу помощи и вразумления.
Использую на нескольких компьютерах Linux Mint Cinnamon 17.2 x64 Для программирования на Си использую редактор vim и компилятор gcc
Если честно, то с Си я тоже только ещё разбираюсь, ничего приличного пока не успел сделать.
С SDL я только только пытаюсь разбираться. Для одной конкретной и не сложной задачи мне нужно использовать рисование примитивов: точки, линии, окружности. Решил использовать библиотеку SDL_draw.
В репозитории дистрибутива такой библиотеки не было. Я установил до кучи все libsdl* , но это не помогло.
Я нашёл ссылку и скачал исходники с ( sdl-draw . sourceforge . net ) файл SDL_draw-1.2.13.tar.gz
Распаковал
Выполнил по инструкции:
sudo ./configure
sudo make
sudo make install
В итоге в /usr/local/lib были созданы библиотеки libSDL_draw.a и libSDL_draw.so
Вопрос теперь только в том как подключать эту библиотеку в программе на Си.
Я нашёл в разных источниках разные описания, но не одно из них у меня не привело к работающему коду.
Например:
#include <SDL/SDL.h>
#include <SDL/SDL_draw.h>
или как вдругом источнике:
#include <SDL_draw.h>
При попытке скомпилировать ругается на отсутствие файла SDL_draw.h
При этом SDL/SDL.h прекрасно подключается, так же как и другие библиотеки установленные из репозитория.
У меня возникло подозрение, что проблема просто в том, что где-то в системе не прописан путь к библиотекам.
Все остальные SDL библиотеки, установленные из репозитория, лежат в папке /usr/lib/x86_64-linux-gnu/
А установленные вручную, как я уже написал, в /usr/local/lib
Я пробовал создавать символьные и жёсткие ссылки, размещая их в /usr/lib/x86_64-linux-gnu/ Пробовал просто копировать файлы туда
Нашёл описание в файле /etc/ld.so.conf ссылку на папку с конфигами /etc/ld.so.conf.d/*.conf
Там нашёл файл x86_64-linux-gnu.conf
Его содержимое:
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
Я добавил туда строку: /usr/local/lib
Но не смотря на это даже после перезагрузки ничего не изменилось.
Я добавил файл local.conf, куда вынес последнюю строчку и удалил её из файла x86_64-linux-gnu.conf
Ещё я временно добавлял /usr/local/lib в переменную PATH (на всякий случай, для эксперимента, хотя он там и не должен быть)
Это тоже ничем не помогло.
Как вариант осталось попробовать прописать путь к библиотеке как опцию компилятора, но во-первых я пока ещё плохо себе это представляю, а во-вторых, нужен такой вариант, чтобы работал без дополнительных изменений строки компилирования.
Что же мне ещё сделать? У меня уже фантазия кончилась
Чувствую себя полным идиотом из-за того что не могу пока разобраться с этой проблемой.
PS: Ещё что-то читал про libtool, но пока как-то стрёмно туда соваться не разобравшись нормально. Пока все мои эксперименты носили обратимый характер. Не хочется чего-то запороть по своему скудоумию.
PPS: Да, ещё забыл сказать, что как вариант я рассматривал ещё изменение файла configure, ведь именно в нём прописан путь, куда ставятся библиотеки. Но посмотрев на этот файл, я решил, пока его тоже не трогать, т.к. некоторые настройки там мне не очевидны.
PPPS: Ещё могу сказать в своё оправдание, что свободного времени когда я могу с чем-то разбираться у меня суммарно всего несколько часов в неделю и приходится всё делать урывками. Поэтому такой сумбур.