编译命令:
gcc linkList.c -o linkList //windows8.1 64位环境
编译报错:
分析与心路:
这个错误很明显,就是调用的函数“myfree”没有定义,我原来是误将“myFree”写为“myfree”,两者太像了,感觉应该没有错啊,找了老半天,发现这个低级错误前,一直盯着提示“collect2: error: ld returned 1 exit status”,这提示的含义就是编译连接时,没有找到先关的文件,可以参考这个博文,collect2: error: ld returned 1 exit status(解决方案大总结),里面总结了很多关于报此类错误的场景,对照这个出错的总结,我查询自己代码是否有“.没有编译成功的情况下,最常见情况是程序本身需要include的头文件被遗漏了”的情况,我的文件目录很简单,查了之后觉得不应有,也确实没有。
之后再次返回到了这个“ undefined reference to `myfree'”报错,选中“myfree”在代码里查询了,确实有,但是得忽略大小写,最后看了函数定义,猛然间发现是误写了...拍断大腿啊,花了将近两小时。
"myfree"函数定义
void myFree(DLlist ptr){
if(NULL == ptr)
return;
free(ptr);
ptr = NULL;
}
排查问题一定要忠于提示,集中精力,少想当然。