我正在尝试在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'
#
任何线索?
谢谢!
答案 0 :(得分:0)
糟糕的图书馆订单......
快速和肮脏的黑客:只需在Makefile中将“-L / usr / sfw / lib -L / opt / mysql / lib”更改为“-L / opt / mysql / lib -L / usr / sfw / lib” / p>
/ 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