免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7705 | 回复: 5

源码包安装DBD-mysql,在make时候出错([dbdimp.o] 错误 1) [复制链接]

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
发表于 2008-08-06 22:25 |显示全部楼层
小弟近日安装DBD-mysql的时候,遇到了一个问题。
废话不说,详细信息列出。
小弟通过源码包安装了MySQL-5.1.23-rc,安装路径为/usr/local/mysql,以下为安装DBD-mysql的配置信息(配置信息的路径均检查过,无误):
  1. perl Makefile.PL --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -L/usr/lib -lz " --cflags=-I/usr/local/mysql/include/mysql --mysql_config=/usr/local/mysql/bin/mysql_config --testhost=127.0.0.1 --testdb=test --testuser=abc -testpassword=abc
复制代码


本人分别用3.0002和4.007的源码包安装,详细信息如下:
DBD-mysql-3.0002
perl后的信息:
  1. I will use the following settings for compiling and testing:

  2.   cflags        (User's choice) = -I/usr/local/mysql/include/mysql
  3.   embedded      (mysql_config ) =
  4.   libs          (User's choice) = -L/usr/local/mysql/lib/mysql -lmysqlclient -L/
  5. usr/lib -lz
  6.   mysql_config  (Users choice ) = /usr/local/mysql/bin/mysql_config
  7.   nocatchstderr (default      ) = 0
  8.   nofoundrows   (default      ) = 0
  9.   ssl           (guessed      ) = 0
  10.   testdb        (User's choice) = test
  11.   testhost      (User's choice) = 127.0.0.1
  12.   testpassword  (User's choice) = abc
  13.   testsocket    (default      ) =
  14.   testuser      (User's choice) = abc

  15. To change these settings, see 'perl Makefile.PL --help' and
  16. 'perldoc INSTALL'.

  17. Multiple copies of Driver.xst found in: /usr/lib/perl5/site_perl/5.8.8/i386-linu                                             x-thread-multi/auto/DBI/ /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-mult                                             i/auto/DBI/ at Makefile.PL line 727
  18. Using DBI 1.605 (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/
  19. Writing Makefile for DBD::mysql
复制代码


make的出错信息如下:
  1. gcc -c  -I/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI -I/usr                                             /local/mysql/include/mysql -DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -D_REENTRANT -D_GNU                                             _SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/in                                             clude -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pip                                             e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe                                             r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSIO                                             N=\"3.0002\" -DXS_VERSION=\"3.0002\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-th                                             read-multi/CORE"   dbdimp.c
  2. dbdimp.c: 在函数 ‘mysql_st_fetch’ 中:
  3. dbdimp.c:2825: 错误:‘NET’ 没有名为 ‘last_errno’ 的成员
  4. make: *** [dbdimp.o] 错误 1
复制代码




DBD-mysql-4.007
  1. I will use the following settings for compiling and testing:

  2.   cflags        (User's choice) = -I/usr/local/mysql/include/mysql
  3.   embedded      (mysql_config ) =
  4.   libs          (User's choice) = -L/usr/local/mysql/lib/mysql -lmysqlclient -L/
  5. usr/lib -lz
  6.   mysql_config  (Users choice ) = /usr/local/mysql/bin/mysql_config
  7.   nocatchstderr (default      ) = 0
  8.   nofoundrows   (default      ) = 0
  9.   ssl           (guessed      ) = 0
  10.   testdb        (User's choice) = test
  11.   testhost      (User's choice) = 127.0.0.1
  12.   testpassword  (User's choice) = abc
  13.   testsocket    (default      ) =
  14.   testuser      (User's choice) = abc

  15. To change these settings, see 'perl Makefile.PL --help' and
  16. 'perldoc INSTALL'.

  17. Multiple copies of Driver.xst found in: /usr/lib/perl5/site_perl/5.8.8/i386-linu
  18. x-thread-multi/auto/DBI/ /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-mult
  19. i/auto/DBI/ at Makefile.PL line 759
  20. Using DBI 1.605 (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/
  21. Writing Makefile for DBD::mysql
复制代码


make出错信息:
  1. gcc -c  -I/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI -I/usr                                             /local/mysql/include/mysql -DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -D_REENTRANT -D_GNU                                             _SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/in                                             clude -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pip                                             e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe                                             r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSIO                                             N=\"4.007\" -DXS_VERSION=\"4.007\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thre                                             ad-multi/CORE"   dbdimp.c
  2. dbdimp.c: 在函数 ‘parse_params’ 中:
  3. dbdimp.c:464: 警告:隐式声明函数 ‘parse_number’
  4. dbdimp.c: 在函数 ‘dbd_discon_all’ 中:
  5. dbdimp.c:1948: 警告:未使用的变量 ‘imp_xxh’
  6. dbdimp.c: 在函数 ‘mysql_st_prepare’ 中:
  7. dbdimp.c:2333: 警告:未使用的变量 ‘limit_flag’
  8. dbdimp.c: 在函数 ‘mysql_st_next_results’ 中:
  9. dbdimp.c:2766: 错误:‘NET’ 没有名为 ‘last_errno’ 的成员
  10. dbdimp.c: 在函数 ‘mysql_st_fetch’ 中:
  11. dbdimp.c:3368: 错误:‘NET’ 没有名为 ‘last_errno’ 的成员
  12. make: *** [dbdimp.o] 错误 1
复制代码


以下乃用源码包安装DBI-1.605的时候make提示信息(make及make install均通过),不知道这是否是造成DBD-mysql不能顺利编译的原因???
  1. DBI.xs: 在函数 ‘set_err_sv’ 中:
  2. DBI.xs:623: 警告:计算出的值未被使用
复制代码


小弟对perl压根儿不会,只会安装而已,请大家帮忙分析一下,谢谢!

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
发表于 2008-08-06 22:53 |显示全部楼层
操作系统是RHEL5,前面居然遗漏了……

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
发表于 2008-08-07 09:04 |显示全部楼层
建议全部采用rpm的实验下

论坛徽章:
0
发表于 2008-08-07 11:46 |显示全部楼层
/usr/local/mysql/lib/mysql
/usr/local/mysql/include/mysql
检查一下这两个目录是否存在

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
发表于 2008-08-08 16:19 |显示全部楼层
感谢楼上两位的答复,我的mysql相关路径都是正确的,检查过好多次了……

在下昨晚按照之前的错误提示,编辑dbdimp.c,把第2825行的内容注释掉了后再重新编译,make和make install的echo $?都正确,但是make test的echo $?错误。
有劳大家帮忙看一下,谢谢。

make时候提示的警告信息:
  1. dbdimp.c: 在函数 ‘mysql_st_internal_execute41’ 中:
  2. dbdimp.c:2461: 警告:此函数中的 ‘rows’ 在使用前可能未初始化

  3. mysql.xs:639: 警告:忽略声明有 warn_unused_result 属性的 ‘Perl_newSViv’ 的返回值
  4. mysql.xs:642: 警告:忽略声明有 warn_unused_result 属性的 ‘Perl_newSViv’ 的返回值
  5. mysql.xs:645: 警告:忽略声明有 warn_unused_result 属性的 ‘Perl_newSVpv’ 的返回值
复制代码



make test的错误信息:
  1. make: *** [test_dynamic] 错误 255
复制代码



make install的信息(全):
  1. Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
  2. Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/.packlist
  3. Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
复制代码

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
发表于 2008-11-26 17:10 |显示全部楼层
好久之前的帖子了,事实证明是用MySQL-5.1的缘故,用MySQL-5.0.67就可以顺利编译安装了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP