sqlite make test завершается неудачно из-за "tcl.h not found" или "неопределенной ссылки на Tcl_Free"

Я получил исходный код sqlite с:

sudo apt-get install fossil
mkdir sqlite
cd sqlite
fossil clone http://www.sqlite.org/cgi/src/doc/trunk a
fossil open a
rm a

и скомпилировал его с инструкциями на README. Теперь я хочу бежать make test,

README говорит, что для этого нужны файлы разработки Tcl. На Ubuntu 14.04 я запускаю:

sudo apt-get install tcl8.6-dev

Тогда если я make test это дало tcl.h not found

Итак, я нашел tcl.h и запустить:

CPATH="$CPATH:/usr/include/tcl8.6" make test

Но теперь это дает:

/tmp/cc4jwHgX.o: In function `dbFreeStmt':
/home/ciro/git/sqlite/./src/tclsqlite.c:451: undefined reference to `Tcl_Free'
/tmp/cc4jwHgX.o: In function `closeIncrblobChannels':
/home/ciro/git/sqlite/./src/tclsqlite.c:189: undefined reference to `Tcl_UnregisterChann

 ...

Я пытался:

cd /usr/lib/x86_64-linux-gnu
sudo ln -s libtcl8.6.so libtcl.so

с не успехом.

1 ответ

Решение

Сценарий настройки sqlite выглядит для установки Tcl следующим образом:

checking for Tcl configuration... found /usr/lib/tclConfig.sh
checking for existence of /usr/lib/tclConfig.sh... loading

Этот сценарий оболочки предоставляет подходящую среду, такую ​​как INCLUDE а также LIB директивы, но это обеспечивается tcl-dev метапакет, а не конкретный tcl8.6-dev пакет, который вы установили.

Если вы установите tcl-dev метапакета и выполните чистую сборку, тогда компоненты Tcl должны быть расположены без необходимости устанавливать другие переменные в make команда.

tclConfig.sh Скрипт кажется собственным эквивалентом Tcl более общего pkg-config механизм.

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