douqie6454 2012-09-28 00:50
浏览 67

使用mysqli solaris构建php - ld:fatal:符号引用错误

I'm trying to build PHP with mysqli on Solaris 10. I hit a stupid problem, it used to work before but now I'm getting the error below.

configure options:

./configure --with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-apxs2=/usr/apache2/bin/apxs --with-gd --with-jpeg-dir=/usr/local \
--with-xpm-dir=/usr/local --with-png-dir=/usr/local --with-openssl \
--enable-zip --with-ldap

configure works fine, like it used to do. Path to mysql_config is valid, otherwise it would fail.

Make fails with the following error:

Undefined                       first referenced
 symbol                             in file
mysql_stmt_param_count              ext/mysqli/.libs/mysqli_api.o
mysql_set_character_set             ext/mysql/.libs/php_mysql.o
mysql_stmt_send_long_data           ext/mysqli/.libs/mysqli_api.o
mysql_stmt_data_seek                ext/mysqli/.libs/mysqli_api.o
mysql_stmt_insert_id                ext/mysqli/.libs/mysqli_api.o
mysql_stmt_store_result             ext/mysqli/.libs/mysqli_api.o
mysql_stmt_reset                    ext/mysqli/.libs/mysqli_api.o
mysql_stmt_close                    ext/mysqli/.libs/mysqli.o
mysql_stmt_fetch                    ext/mysqli/.libs/mysqli_api.o
mysql_stmt_error                    ext/mysqli/.libs/mysqli_api.o
mysql_stmt_errno                    ext/mysqli/.libs/mysqli_api.o
mysql_commit                        ext/mysqli/.libs/mysqli_api.o
mysql_get_server_version            ext/mysqli/.libs/mysqli_api.o
mysql_stmt_attr_set                 ext/mysqli/.libs/mysqli_api.o
mysql_stmt_attr_get                 ext/mysqli/.libs/mysqli_api.o
mysql_next_result                   ext/mysqli/.libs/mysqli_api.o
mysql_stmt_free_result              ext/mysqli/.libs/mysqli_api.o
mysql_stmt_bind_result              ext/mysqli/.libs/mysqli_api.o
mysql_stmt_num_rows                 ext/mysqli/.libs/mysqli_api.o
mysql_warning_count                 ext/mysqli/.libs/mysqli_api.o
mysql_stmt_prepare                  ext/mysqli/.libs/mysqli.o
mysql_rollback                      ext/mysqli/.libs/mysqli_api.o
mysql_stmt_bind_param               ext/mysqli/.libs/mysqli_api.o
mysql_sqlstate                      ext/mysqli/.libs/mysqli_api.o
mysql_stmt_sqlstate                 ext/mysqli/.libs/mysqli_api.o
mysql_get_character_set_info        ext/mysqli/.libs/mysqli_nonapi.o
mysql_more_results                  ext/mysqli/.libs/mysqli_api.o
mysql_stmt_field_count              ext/mysqli/.libs/mysqli_api.o
mysql_stmt_execute                  ext/mysqli/.libs/mysqli_api.o
mysql_stmt_affected_rows            ext/mysqli/.libs/mysqli_api.o
mysql_stmt_result_metadata          ext/mysqli/.libs/mysqli_api.o
mysql_autocommit                    ext/mysqli/.libs/mysqli_api.o
mysql_stmt_init                     ext/mysqli/.libs/mysqli.o
mysql_set_local_infile_handler      ext/mysqli/.libs/mysqli.o
mysql_set_server_option             ext/mysql/.libs/php_mysql.o
ld: fatal: Symbol referencing errors. No output written to sapi/cli/php
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `sapi/cli/php'
# 

Any clues?

Thank You!

  • 写回答

1条回答 默认 最新

  • 普通网友 2014-03-04 10:10
    关注

    bad library order...

    fast&dirty hack: just change "-L/usr/sfw/lib -L/opt/mysql/lib" to "-L/opt/mysql/lib -L/usr/sfw/lib" in Makefile

    /opt/mysql/lib - path to your mysql libraries.

    sh> diff -b Makefile Makefile.orig
    91,92c91,92
    < EXTRA_LDFLAGS = -avoid-version -module -L/usr/ucblib -L/usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3 -L/opt/mysql/lib -L/usr/sfw/lib
    < EXTRA_LDFLAGS_PROGRAM = -L/usr/ucblib -L/usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3 -L/opt/mysql/lib -L/usr/sfw/lib
    ---
    > EXTRA_LDFLAGS = -avoid-version -module -L/usr/ucblib -L/usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3 -L/usr/sfw/lib -L/opt/mysql/lib
    > EXTRA_LDFLAGS_PROGRAM = -L/usr/ucblib -L/usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3 -L/usr/sfw/lib -L/opt/mysql/lib
    105c105
    < PHP_LDFLAGS = -L/usr/ucblib -L/usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3 -L/opt/mysql/lib -L/usr/sfw/lib
    ---
    > PHP_LDFLAGS = -L/usr/ucblib -L/usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3 -L/usr/sfw/lib -L/opt/mysql/lib
    
    评论

报告相同问题?

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错