`a.out` is the default name of the output file. If you want it named something else, then you specify which file to output to with the -o option. ``` gcc shell.c sqlite3.c -lpthread -ldl -lm -o sqlite3 ``` You may then need to make sure that the file `sqlite3` is executable. If it is not, then `chmod +x sqlite3` to make it executable. It would probably be easier to just do a full source download and use the ordinary configure/make process. I would suspect that the generated makefile knows how to do `make install` (but I do not know for sure)