基本上是没有声明头文件造成

可以 gcc 加 -E 参数

然后,用文本编辑器打开生成的 .o文件,看其具体缺少哪些信息的状况。