最近在项目需要用到配置文件的功能,选择了uci库,不过在调用库函数uci_loopup_ptr 时发生Segmentation fault (core dumped),分析了两天:
我们项目是linux环境,包含一个总的编译脚本gos.sh,每个功能模块有自己的makefile。
1.在排除代码和lib库的问题后,怀疑是编译脚本的问题。
2.在尝试修改makefile的CFLAGS +=(追加) ,改为覆盖CFLAGS:=(覆盖)后,没有发生崩溃。
3.于是确定总的编译脚本gos.sh 里CFLAGS选项有问题,通过排除法,定位到 -pie 选项导致崩溃。
修改方法:
只要保证自己makefile 编译选项中没有 -pie选项。
网友评论