Статически связывающий libtcod
Я пытаюсь статически связать libtcod с моим C++ проектом, но безуспешно. Я получаю много ошибок связывания, в том числе:
./tuto: ошибка при загрузке общих библиотек: libtcodxx.so.1: не удается открыть файл общего объекта: нет такого файла или каталога
У кого-нибудь были подобные проблемы с этой библиотекой?
2 ответа
В текущем дистрибутиве 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
Какие флаги вы используете при ссылке на библиотеку? Вы использовали -static
флаг, вы указали -ltcod
? Если нет, добавьте -static -ltcod
до конца командной строки. Или вы можете заставить команду gcc связываться со статической встроенной библиотекой:gcc %YOUR_OTHER_FLAGS_ANDFILES% -l:libtcod.a -L%PATH_TO_TCOD_STATIC_BUILDED_FILE%