> sudo gcc shell.c sqlite3.c -lpthread -ldl -lm There is no need to use sudo for this. > but all I get is the a.out file. The command,<code> mv a.out sqlite3 </code>, will rename the executable you got to what you wanted (I suppose.) Alternatively, replace "gcc" with "gcc -o sqlite3" in that compilation to get what you seem to expect. > last thing I did was was run ./configure and make, ... but when I do 'which sqlite3', there is no output. The current directory is typically not among the directories listed in $PATH. Hence, 'which' does not find named executable files that happen to be in the current directory unless the current directory is so listed. Once you get yourself a properly named 'sqlite3' executable, the final step will be to place it somewhere such that it will be found by the shell (using $PATH) when invoked simply as 'sqlite3'.