建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
092947bevjlmiytnwwd8ky.jpg 鲲鹏应用创新大赛微话题 【鲲鹏知识挑战赛】参与挑战,赢取精彩好礼! 汇聚鲲鹏领域技术专家大咖
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

五湖四海@银河护卫队

发帖: 106粉丝: 34

级别 : 版主

发消息 + 关注

发表于2020年03月23日 11:06:16 874 1
直达本楼层的链接
楼主
显示全部楼层
[交流分享] 编译postgreSQL报error:conflicting types for copy_file_range解决方法

【问题描述】


在arm服务器编译postgresql 10.1及以上版本时报“copy_fetch.c:159:1: error: conflicting types for 'copy_file_range'”错误,详细报错如下:

gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -I../../../src/interfaces/libpq -DFRONTEND -I../../../src/include -D_GNU_SOURCE -c -o copy_fetch.o copy_fetch.c
copy_fetch.c:159:1: error: conflicting types for 'copy_file_range'

copy_file_range(const char path, off_t begin, off_t end, bool trunc)
^~~~~~~~~~~~~~~
In file included from copy_fetch.c:15:0:
/usr/include/unistd.h:1110:9: note: previous declaration of 'copy_file_range' was here
ssize_t copy_file_range (int infd, __off64_t *pinoff,
^~~~~~~~~~~~~~~

image.png


【解决方法】

1、查找copy_fetch.c文件的位置

find / -name copy_fetch.c

发现copy_fetch.c文件在postgresql-10.1.tar.gz源码解压路径postgresql-10.1的子路径src/bin/pg_rewind/中;


2、进入postgresql-10.1.tar.gz源码解压路径postgresql-10.1,修改copy_fetch.c中所有函数名copy_file_range为copy_file_chunk

sed -i "s/copy_file_range/copy_file_chunk/g" src/bin/pg_rewind/copy_fetch.c


3、重新执行make && make install进行编译;


【注】在arm服务器编译其他组件过程报“error: conflicting types for 'copy_file_range'”相关错误也可参考本方法修改;


举报
分享

分享文章到朋友圈

分享文章到微博

阿奇@汪汪队

发帖: 60粉丝: 47

级别 : 版主

发消息 + 关注

发表于2020年03月23日 11:21:20
直达本楼层的链接
沙发
显示全部楼层

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册