Статически связывающий 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%

Другие вопросы по тегам