在进行gcc编译时遇到了collect2: error: ld returned 1 exit status编译器无法连接的问题.
另外还遇到了很多类似的提示
undefined reference to `read_fds'
ndefined reference to `last_flow_num'
等
具体问题如下
TABASE_code/src/lib_MsgUnPack_v1.c:14: undefined reference to `last_flow_num'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
问题排查:
经过排查问题的产生在于我在全局定义全局变量时 在lib_Global.h文件中定义了全局变量last_flow_num等变量,但没有在.c文件内进行定义,导致出现产生在多出进行定义的问题可能
//最后一次数据流水号
extern uint16_t last_flow_num;
问题解决:
在.h文件内extern定义全局变量
//lib_global.h
//最后一次数据流水号
extern uint16_t last_flow_num;
在.c文件内初始化全局变量
//lib_global.c
//最后一次数据流水号
uint16_t last_flow_num;
改动之后错误消失。