Статически связывающий libtcod

Я пытаюсь статически связать libtcod на мой проект C ++ без успеха. Я получаю много ошибок связывания, в том числе:

./ tuto: ошибка при загрузке общих библиотек: libtcodxx.so.1: не удается открыть общий объектный файл: нет такого файла или каталога

У кого-нибудь были подобные проблемы с этой библиотекой?

1

Решение

В текущем дистрибутиве libtcod (1.6.0) есть динамические библиотеки.
Вы можете связать libtcod динамически, но вам нужно создать символические ссылки:

cd / var / lib / libtcod
ln -s libtcod.so libtcod.so.1
ln -s libtcodxx.so libtcodxx.so.1

Скомпилируйте с помощью следующей команды:

g ++ src / *. cpp -o tuto -I / var / lib / libtcod / include -L / var / lib / libtcod -ltcod -ltcodxx -Wl, -rpath = / var / lib / libtcod -Wall
1

Другие решения

Какие флаги вы используете при ссылке на библиотеку? Вы использовали -static флаг, вы указали -ltcod? Если нет, добавьте -static -ltcod до конца командной строки.
Или вы можете сила скажите gcc связать со статической встроенной библиотекой:
gcc %YOUR_OTHER_FLAGS_ANDFILES% -l:libtcod.a -L%PATH_TO_TCOD_STATIC_BUILDED_FILE%

0

По вопросам рекламы [email protected]