гугля, находил предложения с LD_LIBRARY_PATH=... . Но разве флаг -L при компиляции не служит той же самой цели?
нет, не служит.
-L
говорит о том, где искать любые библиотеки во время линковки приложения.
LD_LIBRARY_PATH
говорит о том, где искать динамические библиотеки во время выполнения. Информация из
-L
со времени линковки нигде не сохраняется. Можно зашить в слинкованный бинарник пути к библиотекам, но это делается другими опциями (см. опцию линкера
-rpath
). Во время выполнения динамические библиотеки могут быть где угодно, не обязательно там, где они были во время линковки.
Как создать динамическую библиотеку, которая зависит от другой библиотеки?
вопрос, кстати, неправильный. Ты создал такую библиотеку. Если ты посмотришь в вывод
readelf -d libwindow.so | grep NEEDED
то там должна быть ссылка на libSDL. Твоя проблема в том, что сама libwindow.so не найдена.