参考
《C++ Primer Plus》函数重载篇章
环境
系统:ubuntu20
编译器:gcc
问题
C 和 C++ 源码的混合项目,编译成功,但是程序运行报错找不到函数符号。
背景
项目中使用第三方的代码,是 C 文件,但项目本身是 C++ 工程。
CMakeList.txt 语法检查没有问题,在工程的 devel/lib 文件夹能够找到生成的 so 库。
so 库符号检查
检查报错的 local_planner.cpp 生成的 liblocal_planner.so 文件。查看库有哪些符号丢失。
ldd -r liblocal_planner.so
...
undefined symbol: _Z18dubins_path_lengthP10DubinsPath (./liblocal_planner.so)
undefined symbol: _Z20dubins_shortest_pathP10DubinsPathPdS1_d (.