Apollo自动驾驶开发笔记35——apollo运行出现CHECK failed: (scc->visit_status.load(std::memory_order_relaxed)) == (SC
原创
©著作权归作者所有:来自51CTO博客作者缥缈峰虚竹的原创作品,请联系作者获取转载授权,否则将追究法律责任
问题描述
我在apollo上新增component和算法插件,结果编译正常,运行时出现 CHECK failed: (scc->visit_status.load(std::memory_order_relaxed)) == (SCCInfoBase::kRunning) 错误,
错误日志如下:
[libprotobuf FATAL external/com_google_protobuf/src/google/protobuf/generated_message_util.cc:784] CHECK failed: (scc->visit_status.load(std::memory_order_relaxed)) == (SCCInfoBase::kRunning):
terminate called after throwing an instance of 'google::protobuf::FatalException'
what(): CHECK failed: (scc->visit_status.load(std::memory_order_relaxed)) == (SCCInfoBase::kRunning):
原因分析
proto文件的message名称和其他一样。
网上百度全说在编译时需要加上-lpthread,且需要放到最后。但是这个build文件是apollo团队已经写好的,而且我也尝试增加-lpthread选项,没有什么用,最后生成coredump文件,发现问题定位到确定的一个proto文件,最终我发现我的这个proto是复制了红绿灯的component,message的名称一样,最终我改了component对应的新建的proto文件message名称,成功
解决办法
改了component对应的新建的proto文件message名称,不能和其他proto中一样,最终成功。