今天写程序,突然发现之前的一个程序编译会出错,奇怪之,之前都好好的呀。
后来定位问题,发现该程序引用了本工程common下的typedefine.h,而其中有这样的代码在此期间被添加:
#ifdef __x86_64__
#define size_t unsigned long
#else
#define size_t unsigned int
#endif
而这个程序还自己引用了 #include <string>
string里本身就include了系统的 size_t ,这样就冲突了。
解决办法:
不要自己写size_t,而是#include <include/linux/types.h>