我是一个编程初学者,我尝试在linux下编译一个c程序,别人写的gcc出现如下错误。
cmd.h:145: 错误:“struct stat”的重新定义。
似乎有人不止一次定义了结构“stat”。但是由于有很多代码文件,我不知道如何解决它。任何人都可以就此提出建议。谢谢
最佳答案
我假设您尝试定义自己的结构类型,该类型已在标准 header 中定义。 struct stat 定义在sys/stat.h see here (包含文件统计信息),它直接包含或通过其他 header 包含。
更好的方法是为类型定义使用前缀,例如 typedef struct myprog_cmd_stat { ... }; 。后者还将允许快速了解它的定义位置。
关于c - linux GCC中结构的重新定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243293/