2

I have obtained the sqlite source code with:

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

and compiled it with the instructions on the README. Now I want to run make test.

The README says that that requires Tcl development files. On Ubuntu 14.04 I run:

sudo apt-get install tcl8.6-dev

Then if I make test it gave tcl.h not found

So I located tcl.h and run:

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

But now it gives:

/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

 ...

I have tried:

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

with not success.

1 Answers1

2

The sqlite configure script appears to look for a Tcl installation as follows:

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

This shell script sources a suitable environment such as INCLUDE and LIB directives, but it is provided by the tcl-dev meta package, rather than the specific tcl8.6-dev package that you installed.

If you install the tcl-dev meta package and do a clean build then the Tcl components should be located without any need to set other variables in the make command.

The tclConfig.sh script seems to be Tcl's own equivalent of the more generic pkg-config mechanism.

steeldriver
  • 142,475