« 编译x86_64下静态DBD::MySQL模块
MySQL » http://www.anysql.net/mysql/compile-static-dbd-mysql.html 2009-06-23MySQL的客户端程序可以静态方式编译, 也就是将客户端程序和MySQL的客户端链接成一个可执行文件, 这样发布程序时就不需要额外安装MySQL客户端了, 比如让Perl支持MySQL的数据库, 就不想在每台机器上安装一个MySQL客户端, 只要将Perl拷过去就以使用.
最好是找一台干静的版本较低的机器, 如没有新机器, 致少要编译一个独立的MySQL客户端, 不要和编译服务器端的混在一起. 取得并解压MySQL源代码后, 执行如下命令进行编译配置工作.
./configure --prefix=/usr/mysqlclient \
--without-debug \
--without-bench \
--enable-thread-safe-client \
--enable-assembler \
--with-charset=utf8 \
--with-extra-charsets=utf8,gbk \
--with-collation=utf8_bin \
--without-bench \
--with-lib-ccflags=-fPIC \
--disable-shared --with-pic \
--without-server \
--with-mysqld-user=oracle \
--without-docs \
--without-man
然后下载DBD::MySQL的源代码, 执行如下命令进行编译配置.
perl Makefile.PL --mysql_config=/usr/mysqlclient/bin/mysql_config
make
make install
这样编译生成的就是静态的DBD::MySQL模块, 可以用ldd查看.
$ ldd mysql.so
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95729000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
一开始在不干净(编译过Server版本)的源代码下编译了几次, 总是出现链接上的问题, 清干净就好了.


Recent Comments