在使用perl编译的 DBD::mysql 的时候,进程提示无法编译成功,这里想需要我们手动进行编译相关的包文件;相关错误如下所示;
dbdimp.c: In function 鈓ysql_db_async_result?
dbdimp.c:5049: error: 釳YSQL?undeclared (first use in this function)
dbdimp.c:5049: error: 鈙vsock?undeclared (first use in this function)
dbdimp.c:5049: error: invalid operands to binary *
dbdimp.c:5049: warning: statement with no effect
dbdimp.c:5050: error: 釳YSQL_RES?undeclared (first use in this function)
dbdimp.c:5050: error: 鈅res?undeclared (first use in this function)
dbdimp.c:5050: error: invalid operands to binary *
dbdimp.c:5050: warning: statement with no effect
dbdimp.c:5051: warning: ISO C90 forbids mixed declarations and code
dbdimp.c:5054: error: 鈘esp?undeclared (first use in this function)
dbdimp.c:5055: warning: statement with no effect
dbdimp.c:5069: error: 鈏mp_dbh_t?has no member named 鈇sync_query_in_flight?
dbdimp.c:5073: error: 鈏mp_dbh_t?has no member named 鈇sync_query_in_flight?
dbdimp.c:5073: warning: comparison of distinct pointer types lacks a cast
dbdimp.c:5077: error: 鈏mp_dbh_t?has no member named 鈇sync_query_in_flight?
dbdimp.c:5077: warning: statement with no effect
dbdimp.c:5079: error: 鈏mp_dbh_t?has no member named 鈖mysql?
dbdimp.c:5079: warning: statement with no effect
dbdimp.c:5080: warning: implicit declaration of function 鈓ysql_read_query_result?
dbdimp.c:5082: warning: implicit declaration of function 鈓ysql_store_result?
dbdimp.c:5082: error: assignment of read-only location
dbdimp.c:5082: warning: statement with no effect
dbdimp.c:5085: warning: passing argument 3 of 鈓ysql_dr_error?makes pointer from integer without a cast
dbdimp.c:5086: error: wrong type argument to unary exclamation mark
dbdimp.c:5090: warning: comparison of distinct pointer types lacks a cast
dbdimp.c:5098: error: 鈓y_ulonglong?undeclared (first use in this function)
dbdimp.c:5098: warning: comparison between pointer and integer
dbdimp.c:5099: error: wrong type argument to unary exclamation mark
dbdimp.c:5100: error: 鈏mp_sth_t?has no member named 鈏nsertid?
dbdimp.c:5100: warning: statement with no effect
dbdimp.c:5106: error: 鈏mp_sth_t?has no member named 鈘esult?
dbdimp.c:5107: error: 鈏mp_sth_t?has no member named 鈊one_desc?
dbdimp.c:5107: warning: statement with no effect
dbdimp.c:5108: error: 鈏mp_sth_t?has no member named 鈌etch_done?
dbdimp.c:5108: warning: statement with no effect
dbdimp.c:5111: error: 鈏mp_sth_t?has no member named 鈝arning_count?
dbdimp.c:5111: warning: statement with no effect
dbdimp.c:5096: warning: unused variable 鈏mp_dbh?
dbdimp.c:5115: warning: passing argument 3 of 鈓ysql_dr_error?makes pointer from integer without a cast
dbdimp.c: In function 鈓ysql_db_async_ready?
dbdimp.c:5139: error: 鈏mp_dbh_t?has no member named 鈇sync_query_in_flight?
dbdimp.c:5140: error: 鈏mp_dbh_t?has no member named 鈇sync_query_in_flight?
dbdimp.c:5140: warning: comparison of distinct pointer types lacks a cast
dbdimp.c:5144: error: 鈏mp_dbh_t?has no member named 鈖mysql?
dbdimp.c:5144: error: 鈙ql_type_info_t?has no member named 鈔et?
dbdimp.c:5144: error: request for member 鈌d?in something not a structure or union
dbdimp.c:5144: warning: assignment makes integer from pointer without a cast
make: *** [dbdimp.o] Error 1
CAPTTOFU/DBD-mysql-4.022.tar.gz
/usr/bin/make -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
CAPTTOFU/DBD-mysql-4.022.tar.gz : make NO
解决方法如下,手动编译包文件即可;
[root@Slave02 ~]# ls
anaconda-ks.cfg innotop-1.8.1.tar.gz sleep.sh
a.pl input.txt success_test.sh
a.txt install.log tablesize.sql
bug.sh install.log.syslog temp.tt
cmake-2.8.5.tar.gz let.sh time_take.sh
DBD-mysql-4.018.tar.gz log.txt tuning-primer.sh
debug.sh my_program us.sh
Desktop mysqlspp.sql xtrabackup-1.6.5.tar.gz
file.sh out.txt
[root@Slave02 ~]# tar xzvf DBD-mysql-4.018.tar.gz
DBD-mysql-4.018/
DBD-mysql-4.018/ChangeLog
DBD-mysql-4.018/constants.h
DBD-mysql-4.018/dbdimp.c
DBD-mysql-4.018/dbdimp.h
DBD-mysql-4.018/eg/
DBD-mysql-4.018/eg/bug14979.pl
DBD-mysql-4.018/eg/bug21028.pl
DBD-mysql-4.018/eg/bug30033.pl
DBD-mysql-4.018/eg/bug30033pg.pl
DBD-mysql-4.018/eg/decimal_test.pl
DBD-mysql-4.018/eg/issue21946.pl
DBD-mysql-4.018/eg/prepare_memory_usage.pl
DBD-mysql-4.018/eg/proc_example1.pl
DBD-mysql-4.018/eg/proc_example2.pl
DBD-mysql-4.018/eg/proc_example2a.pl
DBD-mysql-4.018/eg/proc_example2b.pl
DBD-mysql-4.018/eg/proc_example3.pl
DBD-mysql-4.018/eg/proc_example4.pl
DBD-mysql-4.018/INSTALL.html
DBD-mysql-4.018/lib/
DBD-mysql-4.018/lib/Bundle/
DBD-mysql-4.018/lib/Bundle/DBD/
DBD-mysql-4.018/lib/Bundle/DBD/mysql.pm
DBD-mysql-4.018/lib/DBD/
DBD-mysql-4.018/lib/DBD/mysql/
DBD-mysql-4.018/lib/DBD/mysql/GetInfo.pm
DBD-mysql-4.018/lib/DBD/mysql/INSTALL.pod
DBD-mysql-4.018/lib/DBD/mysql.pm
DBD-mysql-4.018/Makefile.PL
DBD-mysql-4.018/Makefile.PL.embedded
DBD-mysql-4.018/MANIFEST
DBD-mysql-4.018/MANIFEST.SKIP
DBD-mysql-4.018/META.yml
DBD-mysql-4.018/myld
DBD-mysql-4.018/mysql.xs
DBD-mysql-4.018/README
DBD-mysql-4.018/t/
DBD-mysql-4.018/t/00base.t
DBD-mysql-4.018/t/10connect.t
DBD-mysql-4.018/t/20createdrop.t
DBD-mysql-4.018/t/25lockunlock.t
DBD-mysql-4.018/t/29warnings.t
DBD-mysql-4.018/t/30insertfetch.t
DBD-mysql-4.018/t/31insertid.t
DBD-mysql-4.018/t/32insert_error.t
DBD-mysql-4.018/t/35limit.t
DBD-mysql-4.018/t/35prepare.t
DBD-mysql-4.018/t/40bindparam.t
DBD-mysql-4.018/t/40bindparam2.t
DBD-mysql-4.018/t/40blobs.t
DBD-mysql-4.018/t/40catalog.t
DBD-mysql-4.018/t/40keyinfo.t
DBD-mysql-4.018/t/40listfields.t
DBD-mysql-4.018/t/40nulls.t
DBD-mysql-4.018/t/40nulls_prepare.t
DBD-mysql-4.018/t/40numrows.t
DBD-mysql-4.018/t/40server_prepare.t
DBD-mysql-4.018/t/40server_prepare_error.t
DBD-mysql-4.018/t/40types.t
DBD-mysql-4.018/t/41bindparam.t
DBD-mysql-4.018/t/41blobs_prepare.t
DBD-mysql-4.018/t/42bindparam.t
DBD-mysql-4.018/t/50chopblanks.t
DBD-mysql-4.018/t/50commit.t
DBD-mysql-4.018/t/51bind_type_guessing.t
DBD-mysql-4.018/t/52comment.t
DBD-mysql-4.018/t/53comment.t
DBD-mysql-4.018/t/55utf8.t
DBD-mysql-4.018/t/60leaks.t
DBD-mysql-4.018/t/65types.t
DBD-mysql-4.018/t/70takeimp.t
DBD-mysql-4.018/t/71impdata.t
DBD-mysql-4.018/t/75supported_sql.t
DBD-mysql-4.018/t/76multi_statement.t
DBD-mysql-4.018/t/80procs.t
DBD-mysql-4.018/t/85init_command.t
DBD-mysql-4.018/t/86_bug_36972.t
DBD-mysql-4.018/t/lib.pl
DBD-mysql-4.018/t/mem_leak.pl
DBD-mysql-4.018/t/mysql.dbtest
DBD-mysql-4.018/t/mysql.mtest
DBD-mysql-4.018/TODO
[root@Slave02 ~]# cd DBD-mysql-4.018
[root@Slave02 DBD-mysql-4.018]# perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
PLEASE NOTE:
For 'make test' to run properly, you must ensure that the
database user 'root' can connect to your MySQL server
and has the proper privileges that these tests require such
as 'drop table', 'create table', 'drop procedure', 'create procedure'
as well as others.
mysql> grant all privileges on test.* to 'root'@'localhost' identified by 's3kr1t';
You can also optionally set the user to run 'make test' with:
perl Makefile.PL --testuser=username
I will use the following settings for compiling and testing:
cflags (mysql_config) = -I/usr/local/mysql/include -g
embedded (mysql_config) =
libs (mysql_config) = -L/usr/local/mysql/lib -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl
mysql_config (Users choice) = /usr/local/mysql/bin/mysql_config
nocatchstderr (default ) = 0
nofoundrows (default ) = 0
ssl (guessed ) = 1
testdb (default ) = test
testhost (default ) =
testpassword (default ) =
testsocket (default ) =
testuser (guessed ) = root
To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.
Checking if your kit is complete...
Looks good
Multiple copies of Driver.xst found in: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ at Makefile.PL line 907
Using DBI 1.623 (for perl 5.008008 on i386-linux-thread-multi) installed in /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::mysql
Writing MYMETA.yml and MYMETA.json
[root@Slave02 DBD-mysql-4.018]# make
cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm
cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm
cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod
cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm
gcc -c -I/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI -I/usr/local/mysql/include -g -DDBD_MYSQL_WITH_SSL -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DVERSION=\"4.018\" -DXS_VERSION=\"4.018\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE" dbdimp.c
dbdimp.c: In function 鈉ount_params?
dbdimp.c:94: warning: suggest parentheses around assignment used as truth value
dbdimp.c:137: warning: suggest parentheses around assignment used as truth value
dbdimp.c: In function 鈊bd_discon_all?
dbdimp.c:2172: warning: unused variable 鈏mp_xxh?
dbdimp.c: In function 鈓ysql_st_prepare?
dbdimp.c:2593: warning: unused variable 鈒imit_flag?
/usr/bin/perl -p -e "s/~DRIVER~/mysql/g" /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI/Driver.xst > mysql.xsi
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
Warning: duplicate function definition 'do' detected in mysql.xs, line 225
Warning: duplicate function definition 'rows' detected in mysql.xs, line 650
gcc -c -I/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI -I/usr/local/mysql/include -g -DDBD_MYSQL_WITH_SSL -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DVERSION=\"4.018\" -DXS_VERSION=\"4.018\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE" mysql.c
mysql.xs: In function 釾S_DBD__mysql__db_do?
mysql.xs:242: warning: unused variable 鈙tatement_ptr?
mysql.xs: In function 釾S_DBD__mysql__st_more_results?
mysql.xs:588: warning: implicit declaration of function 鈓ysql_st_next_results?
mysql.xs:587: warning: unused variable 鈘etval?
mysql.xs: In function 釾S_DBD__mysql__GetInfo_dbd_mysql_get_info?
mysql.xs:724: warning: implicit declaration of function 鈏s_prefix?
Running Mkbootstrap for DBD::mysql ()
chmod 644 mysql.bs
rm -f blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH="/usr/local/mysql/lib:/lib" /usr/bin/perl myld gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.so \
-L/usr/local/mysql/lib -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl \
chmod 755 blib/arch/auto/DBD/mysql/mysql.so
cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs
chmod 644 blib/arch/auto/DBD/mysql/mysql.bs
Manifying blib/man3/DBD::mysql.3pm
Manifying blib/man3/DBD::mysql::INSTALL.3pm
Manifying blib/man3/Bundle::DBD::mysql.3pm
[root@Slave02 DBD-mysql-4.018]# make install
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.bs
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Bundle/DBD/mysql.pm
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/mysql.pm
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/mysql/INSTALL.pod
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/mysql/GetInfo.pm
Installing /usr/share/man/man3/Bundle::DBD::mysql.3pm
Installing /usr/share/man/man3/DBD::mysql.3pm
Installing /usr/share/man/man3/DBD::mysql::INSTALL.3pm
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
[root@Slave02 DBD-mysql-4.018]#