1

我正在尝试在 Solaris 10 上使用 mysqli 构建 PHP。我遇到了一个愚蠢的问题,它以前可以工作,但现在我收到以下错误。

配置选项:

./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

配置工作正常,就像以前一样。mysql_config 的路径是有效的,否则会失败。

制作失败并出现以下错误:

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'
# 

有什么线索吗?

谢谢你!

4

1 回答 1

0

图书馆秩序不好...

fast&dirty hack:只需在 Makefile 中将“-L/usr/sfw/lib -L/opt/mysql/lib”更改为“-L/opt/mysql/lib -L/usr/sfw/lib”

/opt/mysql/lib - mysql 库的路径。

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
于 2014-03-04T10:10:04.397 回答