免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3248 | 回复: 2
打印 上一主题 下一主题

[FastDFS] [已解决]php_client扩展编译报错,求指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-05 16:21 |只看该作者 |倒序浏览
本帖最后由 112183883 于 2013-02-06 12:47 编辑

我的环境:

gcc:4.7.2
php: 5.4.11
nginx: 1.2.6
fastdfs: 4.0.5

其他一切都编译OK,tracker和storage测试正常,在编译php扩展的时候出现一大堆问题,搜索引擎及论坛搜索未果,特来请教,具体如下:

.......
In file included from /usr/local/include/fastdfs/fdfs_client.h:16:0,
                 from /home/dalu/fdfs/php_client/fastdfs_client.c:21:
/usr/local/include/fastdfs/storage_client.h:475:5: 附注: 需要类型‘struct TrackerServerInfo *’,但实参的类型为‘int *’
/home/dalu/fdfs/php_client/fastdfs_client.c:3986:44: 错误: 在非结构或联合中请求成员‘sock’
/home/dalu/fdfs/php_client/fastdfs_client.c:3991:46: 错误: 在非结构或联合中请求成员‘sock’
/home/dalu/fdfs/php_client/fastdfs_client.c: 在函数‘php_fdfs_storage_set_metadata_impl’中:
/home/dalu/fdfs/php_client/fastdfs_client.c:4025:2: 错误: 未知的类型名‘ConnectionInfo’
/home/dalu/fdfs/php_client/fastdfs_client.c:4026:2: 错误: 未知的类型名‘ConnectionInfo’
/home/dalu/fdfs/php_client/fastdfs_client.c:4027:2: 错误: 未知的类型名‘ConnectionInfo’
/home/dalu/fdfs/php_client/fastdfs_client.c:4028:2: 错误: 未知的类型名‘ConnectionInfo’
/home/dalu/fdfs/php_client/fastdfs_client.c:4107:18: 错误: 赋值时将整数赋给指针,未作类型转换 [-Werror]
/home/dalu/fdfs/php_client/fastdfs_client.c:4127:38: 错误: 在非结构或联合中请求成员‘sock’
/home/dalu/fdfs/php_client/fastdfs_client.c:4146:38: 错误: 在非结构或联合中请求成员‘sock’
/home/dalu/fdfs/php_client/fastdfs_client.c:4169:2: 错误: 隐式声明函数‘TO_UPPERCASE’ [-Werror=implicit-function-declaration]
/home/dalu/fdfs/php_client/fastdfs_client.c:4185:2: 错误: 传递‘storage_set_metadata’的第 1 个参数时在不兼容的指针类型间转换 [-Werror]
In file included from /usr/local/include/fastdfs/fdfs_client.h:16:0,
                 from /home/dalu/fdfs/php_client/fastdfs_client.c:21:
/usr/local/include/fastdfs/storage_client.h:297:5: 附注: 需要类型‘struct TrackerServerInfo *’,但实参的类型为‘int *’
/home/dalu/fdfs/php_client/fastdfs_client.c:4185:2: 错误: 传递‘storage_set_metadata’的第 2 个参数时在不兼容的指针类型间转换 [-Werror]
In file included from /usr/local/include/fastdfs/fdfs_client.h:16:0,
                 from /home/dalu/fdfs/php_client/fastdfs_client.c:21:
/usr/local/include/fastdfs/storage_client.h:297:5: 附注: 需要类型‘struct TrackerServerInfo *’,但实参的类型为‘int *’
/home/dalu/fdfs/php_client/fastdfs_client.c:4188:44: 错误: 在非结构或联合中请求成员‘sock’
/home/dalu/fdfs/php_client/fastdfs_client.c:4193:46: 错误: 在非结构或联合中请求成员‘sock’
/home/dalu/fdfs/php_client/fastdfs_client.c: 在函数‘php_fdfs_get_file_info_impl’中:
/home/dalu/fdfs/php_client/fastdfs_client.c:4378:33: 错误: ‘FDFSFileInfo’没有名为‘source_id’的成员
/home/dalu/fdfs/php_client/fastdfs_client.c: 在函数‘load_config_files’中:
/home/dalu/fdfs/php_client/fastdfs_client.c:7367:4: 错误: ‘g_connection_pool_max_idle_time’未声明(在此函数内第一次使用)
/home/dalu/fdfs/php_client/fastdfs_client.c:7384:4: 错误: ‘g_use_connection_pool’未声明(在此函数内第一次使用)
/home/dalu/fdfs/php_client/fastdfs_client.c:7385:4: 错误: 隐式声明函数‘conn_pool_init’ [-Werror=implicit-function-declaration]
/home/dalu/fdfs/php_client/fastdfs_client.c:7385:29: 错误: ‘g_connection_pool’未声明(在此函数内第一次使用)
/home/dalu/fdfs/php_client/fastdfs_client.c: 在函数‘zm_shutdown_fastdfs_client’中:
/home/dalu/fdfs/php_client/fastdfs_client.c:7480:6: 错误: ‘g_use_connection_pool’未声明(在此函数内第一次使用)
/home/dalu/fdfs/php_client/fastdfs_client.c:7482:3: 错误: 隐式声明函数‘fdfs_connection_pool_destroy’ [-Werror=implicit-function-declaration]
cc1: all warnings being treated as errors
make: *** [fastdfs_client.lo] 错误 1

是因为我的gcc版本引起的?请各位帮忙看看,感谢。

论坛徽章:
0
2 [报告]
发表于 2013-02-06 12:45 |只看该作者
自己解决了,发现问题如下:

我的FastDFS是最新版的4.0.5,我降级到3.11重新安装后,php_client便可以编译成功了,但是编译后发现,3.11下生成的fastdfs_client.so没办法被php5.4.11加载,提示:

NOTICE: PHP message: PHP Warning:  PHP Startup: fastdfs_client: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match  in Unknown on line 0

我发现php5.4.11的扩展加载目录是 /usr/local/php54/lib/php/extensions/no-debug-non-zts-20100525/,估计是PHP版本问题,然后换PHP5.3.21,重新编译并加载fastdfs_client.so,这次就顺利加载了。只不过这样一来我就没办法用PHP5.4版本了。杯具。



论坛徽章:
0
3 [报告]
发表于 2014-02-18 08:32 |只看该作者
回复 2# 112183883

谢谢,之前出现于你相同的问题,看了你提示操作亦ok。
我的安装版本是 FastDFS v4.06 / Centos 6.5 64位 / nginx 1.4.4 / PHP 5.3.28,后来换为php 5.3.21就正常生成fastdfs_client.so。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP