ITEEDU

26.1.7.8. 创建共享库

在大多数平台上,默认情况下,MySQL不会创建或支持“.so”(共享)客户端库,这是因为,创建共享库在过去造成过很多问题。

在这种情况下,你可以下载MySQL分发版,并使用以下选项进行配置:

--without-server --enable-shared

要想创建共享驱动程序库,必须为“configure”指定“--enable-shared”选项。默认情况下,“configure”不启用该选项。

如果使用“--disable-shared”选项进行了配置操作,可使用下述命令,从静态库创建“.so”文件。

shell> cd MyODBC-3.51.01
shell> make
shell> cd driver
shell> CC=/usr/bin/gcc \
     $CC -bundle -flat_namespace -undefined error \
         -o .libs/libmyodbc3-3.51.01.so \
         catalog.o connect.o cursor.o dll.o error.o execute.o \
         handle.o info.o misc.o myodbc3.o options.o prepare.o \
         results.o transact.o utility.o \
         -L/usr/local/mysql/lib/mysql/ \
         -L/usr/local/iodbc/lib/ \
         -lz -lc -lmysqlclient -liodbcinst

如果你正在使用unixODBC而不是iODBC,务必将“-liodbcinst”更改为“-lodbcinst”,并相应地配置库路径。

这样,就创建了libmyodbc3-3.51.01.so文件,并将其放在“.libs”目录下。将该文件拷贝到MyODBC库目录下(/usr/local/lib,或使用“--prefix”提供的安装目录下的“lib”目录)。

shell> cd .libs
shell> cp libmyodbc3-3.51.01.so /usr/local/lib
shell> cd /usr/local/lib
shell> ln -s libmyodbc3-3.51.01.so libmyodbc3.so

要想创建线程安全驱动程序库:

shell> CC=/usr/bin/gcc \
     $CC -bundle -flat_namespace -undefined error
      -o .libs/libmyodbc3_r-3.51.01.so
      catalog.o connect.o cursor.o dll.o error.o execute.o
      handle.o info.o misc.o myodbc3.o options.o prepare.o
      results.o transact.o utility.o
      -L/usr/local/mysql/lib/mysql/
      -L/usr/local/iodbc/lib/
      -lz -lc -lmysqlclient_r -liodbcinst