warning: excess elements in array initializer
警告:数组初始值设定项中有多余元素 (定义的数组长度比赋值的个数小)
数组定义出错
“conflicting types for …” 错误
原因一:
原来是因为没有先做函数声明,而函数位于main()之后。
在main函数前声明了函数原型后,一切ok.
原因二:
头文件的被循环引用,在引用时考虑清楚包含顺序
原因三:
头文件声明和定义参数稍有不同
例:
头文件中声明 void Hanlder(const char * buf);
在定义时写作 void Hanlder(char * buf);
这是就会发生conflicting types for 错误问题
error: two or more data types in declaration specifiers
少了一个分号”;”,比如定义一个结构体时,在最后忘了加分号。
解决方法:加上分号即可。
重复定义:去掉重复即可。
warning: implicit declaration of function ‘dic_is__name_dao’
未在头文件定义函数;
error: previous declaration of ‘**’ was here
在头文件和.C文件里函数参数不一致导致
undefined reference to “”
这是因为在链接的时候找不到目标函数,具体缺失了文件,可能如下:
链接时缺失了相关目标文件(.o)
链接时缺少相关的库文件(.a/.so)
链接的库文件中又使用了另一个库文件,但是缺失。
多个库文件链接顺序问题
在c++代码中链接c语言的库