编译x86_64下静态DBD::MySQL模块

    MySQL的客户端程序可以静态方式编译, 也就是将客户端程序和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版本)的源代码下编译了几次, 总是出现链接上的问题, 清干净就好了.

觉得文章有用?立即: 和朋友一起 共学习 共进步!

猜想失败,您看看下面的文章有用吗?

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>