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
механизм.