问题
azkaban编译问题
git clone 报错protocol error: bad pack header
jenkins上解决obs上传问题
wget 下载东西报证书错误
安装完jenkins后发现时区不对
本地刷新excel执行脚本报错解决
记录同网段的两个服务器可以使用内网ping通,但是具体服务访问失败问题
解决一个服务器搭建两个网站后,只有一个域名,通过域名访问两个网站
利用配置yum源安装redis后,启动失败报:Could not connect to Redis
使用sftp上传报错:没有权限
在linux数据库命令框中修改密码后,navicat等连接还是只能使用原密码连接
编译pika报error: unrecognized command line option '-m
编译pika报make: *** [Makefile:229: /opt/pika/third/ro
pip 安装依赖太慢问题
debian如何换源问题
adb删除手机自带软件报错
容器自动退出问题
解决域名通过nginx访问无法上传附件报错
解决http利用nginx重定向至https的问题
解决win下文件或文件夹无法删除问题
nginx实现负载均衡及轮询
-
+
首页
编译pika报make: *** [Makefile:229: /opt/pika/third/ro
- what: 编译pika报make: *** [Makefile:229: /opt/pika/third/rocksdb/librocksdb.a] Error 2 - where: centos8 aarch64 - when: 2021.1.4 - who: 焦荣涛 - why: 项目鲲鹏移植问题解决记录 - how: - release: 3.6.6 ### 1.问题描述 使用PORTABLE=1 make编译报如下错: ```bash memtable/skiplistrep.cc:28:28: required from here ./memtable/inlineskiplist.h:282:11: error: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::atomic<rocksdb::InlineSkipList<const rocksdb::MemTableRep::KeyComparator&>::Node*>’ with no trivial copy-assignment [-Werror=class-memaccess] memcpy(&next_[0], &height, sizeof(int)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ./memtable/inlineskiplist.h:47, from memtable/skiplistrep.cc:6: /usr/include/c++/8/atomic:352:12: note: ‘struct std::atomic<rocksdb::InlineSkipList<const rocksdb::MemTableRep::KeyComparator&>::Node*>’ declared here struct atomic<_Tp*> ^~~~~~~~~~~~ CC monitoring/thread_status_updater.o CC monitoring/thread_status_updater_debug.o CC monitoring/thread_status_util.o CC monitoring/thread_status_util_debug.o CC options/cf_options.o cc1plus: all warnings being treated as errors make[1]: *** [Makefile:1809: memtable/skiplistrep.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/opt/pika/third/rocksdb' make: *** [Makefile:229: /opt/pika/third/rocksdb/librocksdb.a] Error 2 ``` ### 2.问题分析 ```bash #参考链接:https://www.cnblogs.com/saikaimei/p/14396369.html memcpy 会按照内存写入数据。并不会执行拷贝构造函数。当执行拷贝操作时,拷贝指向的类或者结构体如果存在指针, 并且指针指向了动态申请的对象或者数组。此指针将被拷贝源的指针覆盖。而当程序退出时,这部分被覆盖的数据将造成数据泄露。这类警告应该属于编码错误。 ``` ### 3.问题解决 memcpy ( &upoData[i] , &pData , sizeof ( UData ) ) ;---->memcpy ( (void*)&upoData[i] , (void*)&pData , sizeof ( UData ) ) ; ```bash #在inlineskiplist.h中约282行,StashHeight函数中增加(void*),具体见下文 vim /usr/local/pika/third/rocksdb/memtable/inlineskiplist.h void StashHeight(const int height) { assert(sizeof(int) <= sizeof(next_[0])); memcpy((void*)&next_[0], (void*)&height, sizeof(int)); } ```
JRT
2022年1月7日 09:48
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码