取消readline:
READLINE_FLAGS =
LIBREADLINE = -ldl
如果不改会报错:undefined reference to `dlopen'
取消TCL:
TCL_FLAGS =
LIBTCL =
TCLOBJ =
3、为了install到你希望的地方去,而非/usr目录,修改main.mk文件:
install: sqlite3 libsqlite3.a sqlite3.h
mkdir -p ${INSTALL}/bin
mkdir -p ${INSTALL}/lib
mkdir -p ${INSTALL}/include
${STRIP} sqlite3
mv sqlite3 ${INSTALL}/bin
mv libsqlite3.a ${INSTALL}/lib
mv sqlite3.h ${INSTALL}/include
(以上INSTALL是我自己增设的变量,该变量可以在Makefile.linux-gcc里面声明赋值。另外,如果是3以前的版本,以上的数字3去掉)
4、make -f Makefile.linux-gcc
5、make -f Makefile.linux-gcc install
:dso_dlfcn.c:(.text+0x45): undefined reference to `dlopen'
:dso_dlfcn.c:(.text+0xc4): undefined reference to `dlclose'
:dso_dlfcn.c:(.text+0x102): undefined reference to `dlerror'
解决方法:
在Makefile中的链接参数加上 -ldl就可以解决了
我的配置:
Makefile.linux-gcc:
#!/usr/make
#
# Makefile for SQLITE
#
# This is a template makefile for SQLite. Most people prefer to
# use the autoconf generated "configure" script to generate the
# makefile automatically. But that does not work for everybody
# and in every situation. If you are having problems with the
# "configure" script, you might want to try this makefile as an
# alternative. Create a copy of this file, edit the parameters
# below and type "make".
##### The toplevel directory of the source tree. This is the directory
# that contains this "Makefile.in" and the "configure.in" script.
#
TOP = .#### C Compiler and options for use in building executables that
# will run on the platform that is doing the build.
#
BCC = gcc -g -O2
#BCC = /opt/ancic/bin/c89 -0#### If the target operating system supports the "usleep()" system
# call, then define the HAVE_USLEEP macro for all C modules.
#
#USLEEP =
USLEEP = -DHAVE_USLEEP=1#### If you want the SQLite library to be safe for use within a
# multi-threaded program, then define the following macro
# appropriately:
#
#THREADSAFE = -DTHREADSAFE=1
THREADSAFE = -DTHREADSAFE=0#### Specify any extra linker options needed to make the library
# thread safe
#
THREADLIB = -lpthread
#THREADLIB = #### Specify any extra libraries needed to access required functions.
#
#TLIBS = -lrt # fdatasync on Solaris 8
TLIBS = #### Leave SQLITE_DEBUG undefined for maximum speed. Use SQLITE_DEBUG=1
# to check for memory leaks. Use SQLITE_DEBUG=2 to print a log of all
# malloc()s and free()s in order to track down memory leaks.
#
# SQLite uses some expensive assert() statements in the inner loop.
# You can make the library go almost twice as fast if you compile
# with -DNDEBUG=1
#
#OPTS = -DSQLITE_DEBUG=2
#OPTS = -DSQLITE_DEBUG=1
#OPTS =
OPTS = -DNDEBUG=1
OPTS += -DHAVE_FDATASYNC=1#### The suffix to add to executable files. ".exe" for windows.
# Nothing for unix.
#
#EXE = .exe
EXE =#### C Compile and options for use in building executables that
# will run on the target platform. This is usually the same
# as BCC, unless you are cross-compiling.
#
TCC = mipsel-linux-uclibc-gcc
#TCC = gcc -O6
#TCC = gcc -g -O0 -Wall
#TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage
#TCC = /opt/mingw/bin/i386-mingw32-gcc -O6
#TCC = /opt/ansic/bin/c89 -O +z -Wl,-a,archive#### Tools used to build a static library.
#
AR = mipsel-linux-uclibc-ar cr
#AR = ar cr
#AR = /opt/mingw/bin/i386-mingw32-ar cr
RANLIB = mipsel-linux-uclibc-ranlib
#RANLIB = ranlib
#RANLIB = /opt/mingw/bin/i386-mingw32-ranlibMKSHLIB = gcc -shared
SO = so
SHPREFIX = lib
# SO = dll
# SHPREFIX =#### Extra compiler options needed for programs that use the TCL library.
#
TCL_FLAGS =
#TCL_FLAGS = -DSTATIC_BUILD=1
#TCL_FLAGS = -I/home/drh/tcltk/8.4linux
#TCL_FLAGS = -I/home/drh/tcltk/8.4win -DSTATIC_BUILD=1
#TCL_FLAGS = -I/home/drh/tcltk/8.3hpux#### Linker options needed to link against the TCL library.
#
LIBTCL =
#LIBTCL = -ltcl -lm -ldl
#LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm -ldl
#LIBTCL = /home/drh/tcltk/8.4win/libtcl84s.a -lmsvcrt
#LIBTCL = /home/drh/tcltk/8.3hpux/libtcl8.3.a -ldld -lm -lc#### Additional objects for SQLite library when TCL support is enabled.
TCLOBJ =
#TCLOBJ = tclsqlite.o#### Compiler options needed for programs that use the readline() library.
#
READLINE_FLAGS =
#READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/include/readline#### Linker options needed by programs using readline() must link against.
#
LIBREADLINE = -ldl
#LIBREADLINE = -static -lreadline -ltermcap#### Which "awk" program provides nawk compatibilty
#
# NAWK = nawk
NAWK = awk# You should not have to change anything below this line
###############################################################################
include $(TOP)/main.mk