美文网首页
Apollo代码提取移植错误提示总结

Apollo代码提取移植错误提示总结

作者: andyhacker | 来源:发表于2019-04-01 13:50 被阅读0次

1. protobuf的安装及proto文件的编译

2. [undefined reference to testing::internal::xxx in gtest]

未安装gtest模块,可安装此模块或者屏蔽test测试代码
或者安装gtest后,在CmakLists.txt 中加入gtest链接

target_link_libraries(
 ${PROJECT_NAME}
 ...
 gtest
)

3. fLB::FLAGS_xxx’未定义的引用

find_package(gflags REQUIRED)
...
target_link_libraries(
 ${PROJECT_NAME}
 ...
 gflags
)

4. 对‘google::base::CheckOpMessageBuilder::NewString()’未定义的引用

5. 运行时崩溃,Segmentation fault of google::protobuf::Arena::OnArenaAllocation

应是由于protobuf版本混乱导致,可使用ldd查看是否依赖两个版本的protobuf库,
可参考https://github.com/protocolbuffers/protobuf/issues/4723

6. 对‘apollo::hdmap::LaneInfo::GetProjection(apollo::common::math::Vec2d const&, double, double) const’未定义的引用

  • 1) 应是其他模块对HDmap模块的调用产生的,产生了交叉引用,一般是由于编译test文件而导致的,可以将test文件从编译文件中剔除

  • 2) 出现未定义的引用时,还有可能是link时库的顺序影响,尽量保持库的顺序为底层库在前

7. 对‘qpOASES::QProblemB::getPrimalSolution(double*) const’未定义的引用

添加链接依赖项 qpOASES
首先下载并编译qpOASES,加入环境变量,然后添加链接依赖项

target_link_libraries(
 ${PROJECT_NAME}
 ...
 qpOASES
)

8. 对‘tinyxml2::XMLNode::NextSiblingElement(char const*) const’未定义的引用

target_link_libraries(
 ${PROJECT_NAME}
 ...
 tinyxml2
)

9. 对‘pj_free’未定义的引用

target_link_libraries(
 ${PROJECT_NAME}
 ...
 proj
)

10. warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]

error: inlining failed in call to always_inline ‘__m256 _mm256_setzero_ps()’: target specific option

insert this line to CMakeLists.txt

add_compile_options(-march=native)

11. fatal error: Eigen/Core: 没有那个文件或目录

find_package(Eigen3 REQUIRED)
...
include_directories(
  ${EIGEN3_INCLUDE_DIRS}
  ...
)
...
target_link_libraries(${PROJECT_NAME}
  ${EIGEN3_LIBRARIES}
  ...
)

12. error: ‘__s_getMD5Sum’ is not a member of ‘xxx::xxx::xxx’

添加头文件支持

#include "modules/xxx/proto/xxx.ros.h"

13. fatal error: ros/include/ros/ros.h: 没有那个文件或目录

修改
#include "ros/include/ros/ros.h"
为
#include "ros/ros.h"

14. 对‘xxx’未定义的引用

Reference lib
glfwGetWindowUserPointer glfw
YAML yaml-cpp
  • 对‘pcl::PCLBase<apollo::perception::pcl_util::PointXYZIH>::initCompute()’未定义的引用
perception_common

15. libgtest.a(gtest-all.cc.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

/usr/local/lib/libgtest.a: 无法添加符号: 错误的值
参考:https://github.com/google/googletest/issues/854
重新编译安装googletest

cd <path>
git clone https://github.com/google/googletest.git
vim CMakeLists.txt  
// add set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
mkdir build
cd build
cmake ..
make -j12
sudo make install

99. 支持

1) glog gfalgs
参考
https://www.cnblogs.com/burningTheStar/p/6986048.html
2) curlpp

  1. leveldb

sudo apt install libleveldb-dev
4)protobuf-3.6.1

https://blog.csdn.net/datase/article/details/82347834
安装完成之后,记得头文件拷贝
sudo cp src/google/protobuf/stubs/*.h /usr/local/protobuf/include/google/protobuf/stubs/
5) qpOASES-3.2.1

相关文章

  • Apollo代码提取移植错误提示总结

    1. protobuf的安装及proto文件的编译 2. [undefined reference to tes...

  • apollo构建错误

    从apollo官方仓库下载源代码并执行build.sh,出现如下错误: 原因如下: The problem is ...

  • iOS 11 WebViewJavascriptBridge 崩

    崩溃的错误提示: 找到这段代码,按照提示加上这句代码就行了

  • 错误提示总结

    文章来源:微信公众号王M争 什么是错误提示?错误提示就是用户在填写信息的时候难免会出错,这个时候我们应该给用户一个...

  • git 报错 fatal: index-pack failed

    如果在pull代码时遇到错误 先输入git prunePaste_Image.png 出现错误提示, 根据错误提示...

  • Windows系统中Android项目移植到Mac系统

    Windows系统中Android项目移植到Mac系统,之前一直有报错。错误代码:这个代码Windows可以运行,...

  • 作业5

    要求 提示用户输入密码,如果密码是“88888”则提示正确,否则提示错误,程序结束。 代码 ``Console ....

  • 错误提示

    duplicate symbols for architecture x86_64错误 一、错误提示 在我们写代码...

  • 关于Java的异常和递归的知识点

    JVM处理异常:遇到异常,直接提示代码的问题,代码的错误类型,错误位置并中断程序 Try ... catch语句 ...

  • 错误提示设计总结

    相信日常生活中,很多人都曾经在各家银行的网上银行或者直销银行中买过理财产品。各家银行的理财产品购买流程都是大同小异...

网友评论

      本文标题:Apollo代码提取移植错误提示总结

      本文链接:https://www.haomeiwen.com/subject/vyawoftx.html