sqlite fazer teste falhar por causa de "tcl.h não encontrado" ou "referência indefinida para Tcl_Free"

0

Eu obtive o código-fonte do sqlite com:

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

e compilou com as instruções no README . Agora quero executar make test .

O README diz que isso requer arquivos de desenvolvimento Tcl. No Ubuntu 14.04 eu corro:

sudo apt-get install tcl8.6-dev

Então, se eu make test , ele deu tcl.h not found

Então, localizei tcl.h e executei:

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

Mas agora isso é:

/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

 ...

Eu tentei:

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

sem sucesso.

    

1 resposta

1

O script de configuração do sqlite parece procurar uma instalação do Tcl da seguinte forma:

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

Este script de shell origina um ambiente adequado, como INCLUDE e LIB directives, mas é fornecido pelo tcl-dev meta package , em vez do pacote específico tcl8.6-dev que você instalado.

Se você instalar o pacote tcl-dev meta e fizer uma compilação limpa, os componentes do Tcl deverão estar localizados sem a necessidade de definir outras variáveis no comando make .

O script tclConfig.sh parece ser o equivalente do mecanismo mais genérico pkg-config do Tcl.

    
por steeldriver 04.01.2015 / 15:27