最近,给同事定位了一个符号表的冲突问题,简单记录一下. A代码作为静态链接库,被包含进了B代码,然后编译成了动态链接库,B.so A代码同时作为静态链接库,被编译进入了main的主代码. main函数调用B.so里面的函数,同时B.so里面的函数调用了A代码,结果进程异常退出了. 查看符号表,发现调用的A代码,其实运行的是直接编译进入main主函数的代码,而不是B.so里面包含的A代码. 而且比较凑巧的是,符号名称是相同的,但是代码逻辑却不相同, 由于是arm的嵌入式单板,所有的空间被设置成了只…